04:39:44.269 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:44.271 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=49.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] 04:39:44.272 [debug] QUERY OK source="media_items" db=1.0ms idle=49.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 [36579] 04:39:44.273 [debug] Current batch of media processed. Will check again in 1000ms 04:39:45.274 [debug] Current batch of media processed. Will check again in 1000ms 04:39:46.279 [debug] Current batch of media processed. Will check again in 1000ms 04:39:47.281 [debug] Current batch of media processed. Will check again in 1000ms 04:39:48.282 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 04:39:48.285 [debug] QUERY OK source="sources" db=0.7ms queue=1.4ms idle=731.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:39:48.286 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=109.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:48.288 [debug] QUERY OK source="media_items" db=1.2ms idle=111.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 04:39:48.333 [debug] QUERY OK source="media_items" db=43.8ms idle=112.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "a996eecc-75d2-4238-ab1a-87c92690e22f", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 04:39:48Z], ~U[2026-03-11 04:39:48Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 04:39:48.334 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=157.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:48.336 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=50.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] 04:39:48.337 [debug] QUERY OK source="media_items" db=0.8ms idle=49.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 [36580] 04:39:48.337 [debug] Current batch of media processed. Will check again in 1000ms 04:39:49.339 [debug] Current batch of media processed. Will check again in 1000ms 04:39:50.340 [debug] Current batch of media processed. Will check again in 1000ms 04:39:51.341 [debug] Current batch of media processed. Will check again in 1000ms 04:39:52.342 [debug] Current batch of media processed. Will check again in 1000ms 04:39:53.344 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 04:39:53.346 [debug] QUERY OK source="sources" db=1.2ms idle=1166.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:39:53.347 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1167.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:53.348 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1168.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 04:39:53.455 [debug] QUERY OK source="media_items" db=104.8ms queue=0.1ms idle=1170.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "7a3a9d9a-8fa2-41f6-9086-72723bfa1bf7", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 04:39:53Z], ~U[2026-03-11 04:39:53Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 04:39:53.457 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=886.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:53.459 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=111.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] 04:39:53.460 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=112.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 [36581] 04:39:53.460 [debug] Current batch of media processed. Will check again in 1000ms 04:39:54.462 [debug] Current batch of media processed. Will check again in 1000ms 04:39:55.463 [debug] Current batch of media processed. Will check again in 1000ms 04:39:56.465 [debug] Current batch of media processed. Will check again in 1000ms 04:39:57.466 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 04:39:57.468 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=881.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:39:57.470 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=288.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:57.471 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=290.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 04:39:57.529 [debug] QUERY OK source="media_items" db=25.2ms idle=292.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "fbfb3667-64a0-4bc5-a4fd-7f00c46628a8", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 04:39:57Z], ~U[2026-03-11 04:39:57Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 04:39:57.532 [debug] QUERY OK source="sources" db=1.3ms queue=0.3ms idle=350.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:39:57.534 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=64.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] 04:39:57.550 [debug] QUERY OK source="media_items" db=14.8ms queue=0.3ms idle=65.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 [36582] 04:39:57.551 [debug] Current batch of media processed. Will check again in 1000ms 04:39:58.552 [debug] Current batch of media processed. Will check again in 1000ms 04:39:59.553 [debug] Current batch of media processed. Will check again in 1000ms 04:40:00.554 [debug] Current batch of media processed. Will check again in 1000ms 04:40:00.590 [info] {"source":"oban","duration":3271,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:40:00.669 [info] {"source":"oban","duration":3699,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:40:01.555 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 04:40:01.557 [debug] QUERY OK source="sources" db=0.8ms idle=965.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:40:01.558 [debug] QUERY OK source="sources" db=0.6ms idle=955.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:01.560 [debug] QUERY OK source="media_items" db=1.1ms queue=0.5ms idle=888.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 04:40:01.614 [debug] QUERY OK source="media_items" db=53.2ms idle=380.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "64666681-eab1-48d3-9355-fed0a7c118c7", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 04:40:01Z], ~U[2026-03-11 04:40:01Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 04:40:01.615 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=57.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:01.617 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.6ms idle=57.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] 04:40:01.619 [debug] QUERY OK source="media_items" db=0.9ms idle=58.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 [36583] 04:40:01.619 [debug] Current batch of media processed. Will check again in 1000ms 04:40:02.621 [debug] Current batch of media processed. Will check again in 1000ms 04:40:03.622 [debug] Current batch of media processed. Will check again in 1000ms 04:40:04.623 [debug] Current batch of media processed. Will check again in 1000ms 04:40:05.663 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 04:40:05.666 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=483.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:40:05.668 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=486.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:05.669 [debug] QUERY OK source="media_items" db=0.8ms idle=488.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 04:40:05.747 [debug] QUERY OK source="media_items" db=76.6ms idle=489.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "13ca077a-1107-4e64-a5b4-6a4daf563846", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 04:40:05Z], ~U[2026-03-11 04:40:05Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 04:40:05.748 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=81.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:05.750 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=82.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] 04:40:05.751 [debug] QUERY OK source="media_items" db=0.7ms idle=82.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 [36439] 04:40:05.751 [debug] Current batch of media processed. Will check again in 1000ms 04:40:06.753 [debug] Current batch of media processed. Will check again in 1000ms 04:40:07.908 [debug] Current batch of media processed. Will check again in 1000ms 04:40:08.910 [debug] Current batch of media processed. Will check again in 1000ms 04:40:09.913 [debug] Current batch of media processed. Will check again in 1000ms 04:40:10.915 [debug] Current batch of media processed. Will check again in 1000ms 04:40:11.917 [debug] Current batch of media processed. Will check again in 1000ms 04:40:12.918 [debug] Current batch of media processed. Will check again in 1000ms 04:40:13.919 [debug] Current batch of media processed. Will check again in 1000ms 04:40:14.920 [debug] Current batch of media processed. Will check again in 1000ms 04:40:15.921 [debug] Current batch of media processed. Will check again in 1000ms 04:40:16.922 [debug] Current batch of media processed. Will check again in 1000ms 04:40:17.923 [debug] Current batch of media processed. Will check again in 1000ms 04:40:18.925 [debug] Current batch of media processed. Will check again in 1000ms 04:40:19.926 [debug] Current batch of media processed. Will check again in 1000ms 04:40:20.927 [debug] Current batch of media processed. Will check again in 1000ms 04:40:21.928 [debug] Current batch of media processed. Will check again in 1000ms 04:40:22.931 [debug] Current batch of media processed. Will check again in 1000ms 04:40:23.932 [debug] Current batch of media processed. Will check again in 1000ms 04:40:24.933 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 04:40:24.936 [debug] QUERY OK source="sources" db=1.1ms queue=1.2ms idle=1748.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:40:25.161 [debug] QUERY OK source="sources" db=3.1ms queue=222.0ms idle=1751.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:25.164 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=1977.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 04:40:25.417 [debug] QUERY OK source="media_items" db=251.2ms idle=1745.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "2bcecf83-cee9-4ee4-a09e-3580b66d2f9e", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 04:40:25Z], ~U[2026-03-11 04:40:25Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 04:40:25.420 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=995.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:25.424 [debug] QUERY OK source="media_profiles" db=3.0ms queue=0.1ms idle=485.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] 04:40:25.428 [debug] QUERY OK source="media_items" db=3.4ms idle=259.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 [36333] 04:40:25.430 [debug] Current batch of media processed. Will check again in 1000ms 04:40:26.187 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/23/8d/238dd793deb8bfea76068a35c922278bf8177bf576fc00c37f451d050fec2b59.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 04:40:26.220 [debug] Gracefully stopping file follower 04:40:26.221 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=803.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 04:40:26.223 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=801.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:26.408 [debug] QUERY OK source="media_items" db=183.9ms idle=800.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 04:40:26.430 [debug] QUERY OK source="media_items" db=20.8ms idle=981.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "e1db7b4b-c598-47ca-9342-45eb59365c70", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 04:40:26Z], ~U[2026-03-11 04:40:26Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 04:40:26.432 [debug] QUERY OK source="sources" db=1.1ms idle=997.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:26.435 [debug] QUERY OK source="media_items" db=2.4ms idle=210.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 04:40:26.472 [debug] QUERY OK source="media_items" db=25.6ms queue=0.2ms idle=27.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "21d1777d-0448-4508-96e4-9a565d82d757", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 04:40:26Z], ~U[2026-03-11 04:40:26Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 04:40:26.515 [debug] QUERY OK source="sources" db=1.1ms queue=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" = ?) [1] 04:40:26.516 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=83.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 04:40:26.691 [debug] QUERY OK source="media_items" db=31.7ms queue=0.1ms idle=222.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "2be3a854-03b2-4afe-b83a-84f69a476880", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 04:40:26Z], ~U[2026-03-11 04:40:26Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 04:40:26.694 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=257.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:26.733 [debug] QUERY OK source="media_items" db=0.8ms queue=37.6ms idle=233.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 04:40:26.757 [debug] QUERY OK source="media_items" db=22.2ms idle=219.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "b9d40a93-c261-4c13-96ec-eac0c43e69f7", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 04:40:26Z], ~U[2026-03-11 04:40:26Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 04:40:26.773 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=255.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:26.774 [debug] QUERY OK source="media_items" db=1.1ms idle=84.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 04:40:26.999 [debug] QUERY OK source="media_items" db=91.2ms queue=131.7ms idle=80.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "5732aaa5-8d28-45f5-be66-24b7df6614e7", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 04:40:26Z], ~U[2026-03-11 04:40:26Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 04:40:27.024 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=289.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:27.027 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=269.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 04:40:27.183 [debug] QUERY OK source="media_items" db=152.6ms idle=256.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "9acf6606-510d-4b94-98ae-a2163ce4ab8c", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 04:40:27.187 [debug] QUERY OK source="sources" db=0.8ms queue=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" = ?) [1] 04:40:27.275 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=275.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 04:40:27.318 [debug] QUERY OK source="media_items" db=41.9ms idle=251.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "33870d8a-0331-4545-b20c-2a444d69dfde", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 04:40:27.324 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms 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" = ?) [1] 04:40:27.326 [debug] QUERY OK source="media_items" db=0.6ms idle=142.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 04:40:27.411 [debug] QUERY OK source="media_items" db=84.9ms idle=139.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "4ea9c16a-cec1-4114-873c-ebea5b38bb0c", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 04:40:27.415 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=138.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:27.417 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=97.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 04:40:27.785 [debug] QUERY OK source="media_items" db=366.8ms idle=93.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "dc98cbde-4dd2-4a24-9f0f-9ea8c23931c4", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 04:40:27.907 [debug] QUERY OK source="sources" db=63.4ms queue=0.2ms idle=432.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 04:40:27.909 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=493.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 04:40:27.934 [debug] QUERY OK source="media_items" db=24.1ms idle=492.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "f6438a6e-b23d-4d97-9c05-85effca28bfe", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 04:40:27.939 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=498.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z], 1] 04:40:27.941 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=155.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")))) [1] 04:40:27.943 [debug] QUERY OK source="media_items" db=1.6ms idle=34.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")))) [1] 04:40:27.944 [debug] QUERY OK source="media_items" db=0.5ms idle=34.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 04:40:27.991 [debug] QUERY OK source="tasks" db=37.3ms idle=12.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3229, 1, ~U[2026-03-11 04:40:27Z], ~U[2026-03-11 04:40:27Z]] 04:40:28.161 [info] {"args":{"id":1},"id":3228,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":65579572,"event":"job:stop","queue_time":216112,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 04:40:30.592 [info] {"source":"oban","duration":1844,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:40:43.296 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 04:41:00.596 [info] {"source":"oban","duration":2063,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:41:00.671 [info] {"source":"oban","duration":389,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:41:30.684 [info] {"source":"oban","duration":2434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:41:43.303 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 04:42:00.673 [info] {"source":"oban","duration":868,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:42:00.686 [info] {"source":"oban","duration":1528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:42:30.690 [info] {"source":"oban","duration":2023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:43:00.675 [info] {"source":"oban","duration":414,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:43:00.692 [info] {"source":"oban","duration":1870,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:43:30.695 [info] {"source":"oban","duration":1604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:44:00.676 [info] {"source":"oban","duration":378,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:44:00.698 [info] {"source":"oban","duration":1534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:44:30.701 [info] {"source":"oban","duration":1435,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:45:00.678 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:45:00.704 [info] {"source":"oban","duration":1884,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:45:30.707 [info] {"source":"oban","duration":2196,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:46:00.680 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:46:00.709 [info] {"source":"oban","duration":1689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:46:30.713 [info] {"source":"oban","duration":2131,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:46:43.338 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 04:47:00.682 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:47:00.715 [info] {"source":"oban","duration":1796,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:47:30.719 [info] {"source":"oban","duration":1902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:48:00.684 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:48:00.721 [info] {"source":"oban","duration":1849,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:48:30.724 [info] {"source":"oban","duration":1838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:49:00.686 [info] {"source":"oban","duration":443,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:49:00.727 [info] {"source":"oban","duration":1665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:49:30.731 [info] {"source":"oban","duration":2106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:50:00.688 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:50:00.734 [info] {"source":"oban","duration":1977,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:50:30.737 [info] {"source":"oban","duration":2335,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:51:00.689 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:51:00.740 [info] {"source":"oban","duration":2222,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:51:30.742 [info] {"source":"oban","duration":1355,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:51:43.372 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 04:52:00.691 [info] {"source":"oban","duration":482,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:52:00.783 [info] {"source":"oban","duration":40134,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:52:30.785 [info] {"source":"oban","duration":1500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:53:00.693 [info] {"source":"oban","duration":382,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:53:00.790 [info] {"source":"oban","duration":4443,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:53:30.793 [info] {"source":"oban","duration":1911,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:54:00.695 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:54:00.795 [info] {"source":"oban","duration":1541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:54:30.799 [info] {"source":"oban","duration":2233,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:55:00.696 [info] {"source":"oban","duration":574,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:55:00.802 [info] {"source":"oban","duration":2043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:55:30.805 [info] {"source":"oban","duration":1926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:56:00.698 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:56:00.861 [info] {"source":"oban","duration":55125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 04:56:30.864 [info] {"source":"oban","duration":2036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:56:43.407 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 04:57:00.700 [info] {"source":"oban","duration":317,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:57:00.866 [info] {"source":"oban","duration":1714,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:57:30.869 [info] {"source":"oban","duration":1578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:58:00.702 [info] {"source":"oban","duration":456,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:58:00.872 [info] {"source":"oban","duration":1936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:58:30.875 [info] {"source":"oban","duration":1781,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:59:00.704 [info] {"source":"oban","duration":527,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 04:59:00.879 [info] {"source":"oban","duration":1975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 04:59:30.881 [info] {"source":"oban","duration":1809,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:00:00.706 [info] {"source":"oban","duration":479,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:00:00.884 [info] {"source":"oban","duration":1713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:00:30.887 [info] {"source":"oban","duration":1683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:01:00.708 [info] {"source":"oban","duration":445,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:01:00.897 [info] {"source":"oban","duration":8832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:01:30.900 [info] {"source":"oban","duration":1597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:01:43.441 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:02:00.710 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:02:00.903 [info] {"source":"oban","duration":1615,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:02:30.907 [info] {"source":"oban","duration":1872,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:03:00.712 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:03:00.910 [info] {"source":"oban","duration":2037,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:03:30.913 [info] {"source":"oban","duration":2029,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:04:00.714 [info] {"source":"oban","duration":714,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:04:00.916 [info] {"source":"oban","duration":1891,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:04:30.918 [info] {"source":"oban","duration":1659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:00.717 [info] {"source":"oban","duration":876,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:05:00.922 [info] {"source":"oban","duration":1743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:05:30.925 [info] {"source":"oban","duration":1893,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:06:00.718 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:06:00.927 [info] {"source":"oban","duration":1861,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:06:30.930 [info] {"source":"oban","duration":1849,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:00.721 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:07:00.934 [info] {"source":"oban","duration":2026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:30.937 [info] {"source":"oban","duration":1968,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:07:43.481 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:08:00.722 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:08:00.939 [info] {"source":"oban","duration":1515,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:08:30.943 [info] {"source":"oban","duration":2118,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:09:00.725 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:09:00.946 [info] {"source":"oban","duration":2660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:09:30.949 [info] {"source":"oban","duration":1641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:00.726 [info] {"source":"oban","duration":395,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:10:00.952 [info] {"source":"oban","duration":1533,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:28.243 [info] {"args":{"id":1},"id":3229,"meta":{},"system_time":1773205828242206123,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:10:28.246 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1958.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:28.274 [debug] QUERY OK source="settings" db=27.0ms queue=0.1ms idle=1961.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:10:28.313 [debug] QUERY OK source="media_items" db=36.3ms queue=0.1ms idle=1085.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")))) [1] 05:10:28.315 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=80.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 05:10:28.317 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=74.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:28.320 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=73.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:10:28.485 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:10:28.487 [debug] Current batch of media processed. Will check again in 1000ms 05:10:28.488 [debug] QUERY OK source="settings" db=2.3ms queue=0.2ms idle=210.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:10:28.489 [debug] QUERY OK source="settings" db=0.9ms idle=175.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:10:28.490 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=174.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:10:28.492 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d8/9e/d89ec40df1c6cf758052c31a242fce8d1f0f55f05c6bab61813d696cad0ed6f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:10:29.489 [debug] Current batch of media processed. Will check again in 1000ms 05:10:30.490 [debug] Current batch of media processed. Will check again in 1000ms 05:10:30.957 [info] {"source":"oban","duration":3158,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:10:31.491 [debug] Current batch of media processed. Will check again in 1000ms 05:10:32.492 [debug] Current batch of media processed. Will check again in 1000ms 05:10:33.493 [debug] Current batch of media processed. Will check again in 1000ms 05:10:34.495 [debug] Current batch of media processed. Will check again in 1000ms 05:10:35.496 [debug] Current batch of media processed. Will check again in 1000ms 05:10:36.497 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 05:10:36.500 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=236.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:10:36.517 [debug] QUERY OK source="sources" db=16.1ms queue=0.1ms idle=215.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:36.774 [debug] QUERY OK source="media_items" db=255.2ms queue=0.2ms idle=232.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 05:10:36.876 [debug] QUERY OK source="media_items" db=87.2ms idle=503.1ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "29ed28fe-4d97-4df0-93ff-ce411bc7ee9d", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 05:10:36Z], ~U[2026-03-11 05:10:36Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 05:10:36.886 [debug] QUERY OK source="sources" db=8.2ms queue=0.1ms idle=591.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:36.908 [debug] QUERY OK source="media_profiles" db=21.7ms queue=0.2ms idle=386.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:36.912 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=392.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 [37332] 05:10:36.912 [debug] Current batch of media processed. Will check again in 1000ms 05:10:37.914 [debug] Current batch of media processed. Will check again in 1000ms 05:10:38.915 [debug] Current batch of media processed. Will check again in 1000ms 05:10:39.916 [debug] Current batch of media processed. Will check again in 1000ms 05:10:40.918 [debug] Current batch of media processed. Will check again in 1000ms 05:10:41.920 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 05:10:41.921 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1634.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:10:41.923 [debug] QUERY OK source="sources" db=0.9ms idle=1636.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:41.925 [debug] QUERY OK source="media_items" db=0.6ms idle=1638.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 05:10:41.932 [debug] QUERY OK source="media_items" db=5.4ms idle=1639.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "091f4d79-9b23-4080-9a34-4988ff89f67a", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 05:10:41Z], ~U[2026-03-11 05:10:41Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 05:10:41.934 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=650.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:41.936 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=13.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:41.938 [debug] QUERY OK source="media_items" db=1.5ms idle=13.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 [36910] 05:10:41.938 [debug] Current batch of media processed. Will check again in 1000ms 05:10:42.940 [debug] Current batch of media processed. Will check again in 1000ms 05:10:43.942 [debug] Current batch of media processed. Will check again in 1000ms 05:10:44.944 [debug] Current batch of media processed. Will check again in 1000ms 05:10:45.945 [debug] Current batch of media processed. Will check again in 1000ms 05:10:46.948 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 05:10:46.979 [debug] QUERY OK source="sources" db=0.8ms idle=1691.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:10:46.980 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1693.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:46.982 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1694.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 05:10:47.012 [debug] QUERY OK source="media_items" db=28.7ms queue=0.1ms idle=1675.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "5c6e3874-6dc0-4520-b114-ebbecf8dfc9d", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 05:10:46Z], ~U[2026-03-11 05:10:46Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 05:10:47.014 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=703.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:47.016 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=35.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:47.018 [debug] QUERY OK source="media_items" db=0.9ms idle=36.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 [36578] 05:10:47.018 [debug] Current batch of media processed. Will check again in 1000ms 05:10:48.019 [debug] Current batch of media processed. Will check again in 1000ms 05:10:49.020 [debug] Current batch of media processed. Will check again in 1000ms 05:10:50.022 [debug] Current batch of media processed. Will check again in 1000ms 05:10:51.024 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 05:10:51.026 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms 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 (?)) [1] 05:10:51.027 [debug] QUERY OK source="sources" db=0.7ms idle=739.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:51.029 [debug] QUERY OK source="media_items" db=1.0ms queue=0.4ms idle=740.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 05:10:51.033 [debug] QUERY OK source="media_items" db=2.2ms idle=742.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "e9b0aa95-f27a-47f7-8aa6-6ccaa55b9e80", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 05:10:51Z], ~U[2026-03-11 05:10:51Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 05:10:51.034 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=698.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:51.035 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:51.037 [debug] QUERY OK source="media_items" db=0.9ms 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 [36579] 05:10:51.037 [debug] Current batch of media processed. Will check again in 1000ms 05:10:52.038 [debug] Current batch of media processed. Will check again in 1000ms 05:10:53.039 [debug] Current batch of media processed. Will check again in 1000ms 05:10:54.041 [debug] Current batch of media processed. Will check again in 1000ms 05:10:55.196 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 05:10:55.197 [debug] QUERY OK source="sources" db=0.6ms idle=909.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:10:55.199 [debug] QUERY OK source="sources" db=1.0ms idle=910.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:55.200 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=912.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 05:10:55.206 [debug] QUERY OK source="media_items" db=4.9ms idle=913.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "5b7e4f04-34d2-44de-bc67-8ddbbb79e3bc", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 05:10:55Z], ~U[2026-03-11 05:10:55Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 05:10:55.207 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=857.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:10:55.209 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=10.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:10:55.210 [debug] QUERY OK source="media_items" db=0.6ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36580] 05:10:55.210 [debug] Current batch of media processed. Will check again in 1000ms 05:10:56.211 [debug] Current batch of media processed. Will check again in 1000ms 05:10:57.212 [debug] Current batch of media processed. Will check again in 1000ms 05:10:58.213 [debug] Current batch of media processed. Will check again in 1000ms 05:10:59.214 [debug] Current batch of media processed. Will check again in 1000ms 05:11:00.216 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 05:11:00.219 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=1930.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:11:00.222 [debug] QUERY OK source="sources" db=2.5ms queue=0.1ms idle=1932.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:00.226 [debug] QUERY OK source="media_items" db=2.1ms queue=0.2ms idle=1936.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 05:11:00.307 [debug] QUERY OK source="media_items" db=77.3ms queue=0.3ms idle=1862.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "d3303709-6d7d-4089-98a8-064d5f1cd365", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 05:11:00Z], ~U[2026-03-11 05:11:00Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 05:11:00.311 [debug] QUERY OK source="sources" db=2.6ms queue=0.4ms idle=940.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:00.317 [debug] QUERY OK source="media_profiles" db=5.2ms queue=0.3ms idle=93.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:11:00.322 [debug] QUERY OK source="media_items" db=2.5ms queue=0.2ms idle=96.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 [36581] 05:11:00.322 [debug] Current batch of media processed. Will check again in 1000ms 05:11:00.728 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:11:01.323 [debug] Current batch of media processed. Will check again in 1000ms 05:11:01.378 [info] {"source":"oban","duration":418949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:02.325 [debug] Current batch of media processed. Will check again in 1000ms 05:11:03.326 [debug] Current batch of media processed. Will check again in 1000ms 05:11:04.327 [debug] Current batch of media processed. Will check again in 1000ms 05:11:05.328 [debug] Current batch of media processed. Will check again in 1000ms 05:11:06.331 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 05:11:06.336 [debug] QUERY OK source="sources" db=4.1ms queue=0.4ms idle=1043.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:11:06.342 [debug] QUERY OK source="sources" db=3.9ms queue=0.1ms idle=907.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:06.343 [debug] QUERY OK source="media_items" db=0.6ms queue=0.5ms idle=54.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 05:11:06.415 [debug] QUERY OK source="media_items" db=70.1ms idle=56.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "2e1d9e72-c232-4d34-89ac-2ef3e70cbe74", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 05:11:06Z], ~U[2026-03-11 05:11:06Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 05:11:06.485 [debug] QUERY OK source="sources" db=3.1ms queue=0.3ms idle=194.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:06.534 [debug] QUERY OK source="media_profiles" db=1.0ms idle=191.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:11:06.539 [debug] QUERY OK source="media_items" db=4.8ms idle=191.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 [36582] 05:11:06.544 [debug] Current batch of media processed. Will check again in 1000ms 05:11:07.547 [debug] Current batch of media processed. Will check again in 1000ms 05:11:08.550 [debug] Current batch of media processed. Will check again in 1000ms 05:11:09.732 [debug] Current batch of media processed. Will check again in 1000ms 05:11:10.734 [debug] Current batch of media processed. Will check again in 1000ms 05:11:11.756 [debug] Current batch of media processed. Will check again in 1000ms 05:11:12.757 [debug] Current batch of media processed. Will check again in 1000ms 05:11:13.758 [debug] Current batch of media processed. Will check again in 1000ms 05:11:14.760 [debug] Current batch of media processed. Will check again in 1000ms 05:11:15.984 [debug] Current batch of media processed. Will check again in 1000ms 05:11:16.986 [debug] Current batch of media processed. Will check again in 1000ms 05:11:17.988 [debug] Current batch of media processed. Will check again in 1000ms 05:11:18.989 [debug] Current batch of media processed. Will check again in 1000ms 05:11:19.995 [debug] Current batch of media processed. Will check again in 1000ms 05:11:20.997 [debug] Current batch of media processed. Will check again in 1000ms 05:11:21.998 [debug] Current batch of media processed. Will check again in 1000ms 05:11:23.000 [debug] Current batch of media processed. Will check again in 1000ms 05:11:24.005 [debug] Current batch of media processed. Will check again in 1000ms 05:11:25.244 [debug] Current batch of media processed. Will check again in 1000ms 05:11:26.249 [debug] Current batch of media processed. Will check again in 1000ms 05:11:27.252 [debug] Current batch of media processed. Will check again in 1000ms 05:11:28.254 [debug] Current batch of media processed. Will check again in 1000ms 05:11:29.255 [debug] Current batch of media processed. Will check again in 1000ms 05:11:30.256 [debug] Current batch of media processed. Will check again in 1000ms 05:11:31.483 [debug] Current batch of media processed. Will check again in 1000ms 05:11:31.488 [info] {"source":"oban","duration":4787,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:11:32.488 [debug] Current batch of media processed. Will check again in 1000ms 05:11:33.489 [debug] Current batch of media processed. Will check again in 1000ms 05:11:34.494 [debug] Current batch of media processed. Will check again in 1000ms 05:11:35.502 [debug] Current batch of media processed. Will check again in 1000ms 05:11:36.508 [debug] Current batch of media processed. Will check again in 1000ms 05:11:37.510 [debug] Current batch of media processed. Will check again in 1000ms 05:11:38.511 [debug] Current batch of media processed. Will check again in 1000ms 05:11:39.512 [debug] Current batch of media processed. Will check again in 1000ms 05:11:40.734 [debug] Current batch of media processed. Will check again in 1000ms 05:11:41.983 [debug] Current batch of media processed. Will check again in 1000ms 05:11:42.996 [debug] Current batch of media processed. Will check again in 1000ms 05:11:43.998 [debug] Current batch of media processed. Will check again in 1000ms 05:11:45.000 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 05:11:45.013 [debug] QUERY OK source="sources" db=12.7ms queue=0.2ms idle=498.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:11:45.255 [debug] QUERY OK source="sources" db=18.1ms queue=3.5ms idle=234.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:46.494 [debug] QUERY OK source="media_items" db=1237.5ms idle=256.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 05:11:47.513 [debug] QUERY OK source="media_items" db=1015.9ms queue=0.1ms idle=1497.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "2a3213ce-73b0-4e00-a899-749df5d365c2", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 05:11:46Z], ~U[2026-03-11 05:11:46Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 05:11:47.988 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=1475.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:11:48.238 [debug] QUERY OK source="media_profiles" db=248.8ms queue=0.1ms idle=982.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:11:48.249 [debug] QUERY OK source="media_items" db=6.4ms queue=1.2ms idle=1234.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 [36583] 05:11:48.250 [debug] Current batch of media processed. Will check again in 1000ms 05:11:49.251 [debug] Current batch of media processed. Will check again in 1000ms 05:11:50.253 [debug] Current batch of media processed. Will check again in 1000ms 05:11:51.254 [debug] Current batch of media processed. Will check again in 1000ms 05:11:52.256 [debug] Current batch of media processed. Will check again in 1000ms 05:11:53.259 [debug] Current batch of media processed. Will check again in 1000ms 05:11:54.262 [debug] Current batch of media processed. Will check again in 1000ms 05:11:55.484 [debug] Current batch of media processed. Will check again in 1000ms 05:11:56.485 [debug] Current batch of media processed. Will check again in 1000ms 05:11:57.733 [debug] Current batch of media processed. Will check again in 1000ms 05:11:58.735 [debug] Current batch of media processed. Will check again in 1000ms 05:11:59.737 [debug] Current batch of media processed. Will check again in 1000ms 05:12:00.732 [info] {"source":"oban","duration":729,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:12:00.742 [debug] Current batch of media processed. Will check again in 1000ms 05:12:01.743 [debug] Current batch of media processed. Will check again in 1000ms 05:12:02.744 [debug] Current batch of media processed. Will check again in 1000ms 05:12:03.738 [info] {"source":"oban","duration":2249300,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:03.745 [debug] Current batch of media processed. Will check again in 1000ms 05:12:04.747 [debug] Current batch of media processed. Will check again in 1000ms 05:12:05.748 [debug] Current batch of media processed. Will check again in 1000ms 05:12:06.750 [debug] Current batch of media processed. Will check again in 1000ms 05:12:07.751 [debug] Current batch of media processed. Will check again in 1000ms 05:12:08.758 [debug] Current batch of media processed. Will check again in 1000ms 05:12:10.232 [debug] Current batch of media processed. Will check again in 1000ms 05:12:11.493 [debug] Current batch of media processed. Will check again in 1000ms 05:12:12.496 [debug] Current batch of media processed. Will check again in 1000ms 05:12:13.508 [debug] Current batch of media processed. Will check again in 1000ms 05:12:14.735 [debug] Current batch of media processed. Will check again in 1000ms 05:12:15.982 [debug] Current batch of media processed. Will check again in 1000ms 05:12:16.993 [debug] Current batch of media processed. Will check again in 1000ms 05:12:17.995 [debug] Current batch of media processed. Will check again in 1000ms 05:12:18.997 [debug] Current batch of media processed. Will check again in 1000ms 05:12:19.998 [debug] Current batch of media processed. Will check again in 1000ms 05:12:21.000 [debug] Current batch of media processed. Will check again in 1000ms 05:12:22.003 [debug] Current batch of media processed. Will check again in 1000ms 05:12:23.005 [debug] Current batch of media processed. Will check again in 1000ms 05:12:24.006 [debug] Current batch of media processed. Will check again in 1000ms 05:12:25.007 [debug] Current batch of media processed. Will check again in 1000ms 05:12:26.008 [debug] Current batch of media processed. Will check again in 1000ms 05:12:27.010 [debug] Current batch of media processed. Will check again in 1000ms 05:12:28.011 [debug] Current batch of media processed. Will check again in 1000ms 05:12:29.232 [debug] Current batch of media processed. Will check again in 1000ms 05:12:30.234 [debug] Current batch of media processed. Will check again in 1000ms 05:12:31.261 [debug] Current batch of media processed. Will check again in 1000ms 05:12:32.263 [debug] Current batch of media processed. Will check again in 1000ms 05:12:33.483 [debug] Current batch of media processed. Will check again in 1000ms 05:12:33.750 [info] {"source":"oban","duration":10236,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:12:34.484 [debug] Current batch of media processed. Will check again in 1000ms 05:12:35.485 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 05:12:35.489 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=987.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:12:35.490 [debug] QUERY OK source="sources" db=0.7ms idle=493.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:12:35.492 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=494.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 05:12:35.502 [debug] QUERY OK source="media_items" db=6.2ms idle=497.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "c54c7a27-1c06-4c91-814e-560544121777", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 05:12:35Z], ~U[2026-03-11 05:12:35Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 05:12:35.551 [debug] QUERY OK source="sources" db=2.9ms queue=0.3ms idle=551.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:12:35.556 [debug] QUERY OK source="media_profiles" db=4.1ms queue=0.8ms idle=61.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:12:35.558 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=65.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 [36439] 05:12:35.734 [debug] Current batch of media processed. Will check again in 1000ms 05:12:36.735 [debug] Current batch of media processed. Will check again in 1000ms 05:12:37.737 [debug] Current batch of media processed. Will check again in 1000ms 05:12:38.740 [debug] Current batch of media processed. Will check again in 1000ms 05:12:39.741 [debug] Current batch of media processed. Will check again in 1000ms 05:12:40.745 [debug] Current batch of media processed. Will check again in 1000ms 05:12:41.755 [debug] Current batch of media processed. Will check again in 1000ms 05:12:42.756 [debug] Current batch of media processed. Will check again in 1000ms 05:12:43.758 [debug] Current batch of media processed. Will check again in 1000ms 05:12:44.761 [debug] Current batch of media processed. Will check again in 1000ms 05:12:45.983 [debug] Current batch of media processed. Will check again in 1000ms 05:12:47.010 [debug] Current batch of media processed. Will check again in 1000ms 05:12:45.002 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:12:48.011 [debug] Current batch of media processed. Will check again in 1000ms 05:12:49.012 [debug] Current batch of media processed. Will check again in 1000ms 05:12:50.233 [debug] Current batch of media processed. Will check again in 1000ms 05:12:51.235 [debug] Current batch of media processed. Will check again in 1000ms 05:12:52.484 [debug] Current batch of media processed. Will check again in 1000ms 05:12:53.509 [debug] Current batch of media processed. Will check again in 1000ms 05:12:54.511 [debug] Current batch of media processed. Will check again in 1000ms 05:12:55.734 [debug] Current batch of media processed. Will check again in 1000ms 05:12:56.735 [debug] Current batch of media processed. Will check again in 1000ms 05:12:57.736 [debug] Current batch of media processed. Will check again in 1000ms 05:12:58.744 [debug] Current batch of media processed. Will check again in 1000ms 05:12:59.746 [debug] Current batch of media processed. Will check again in 1000ms 05:13:00.746 [info] {"source":"oban","duration":3658,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:13:00.749 [debug] Current batch of media processed. Will check again in 1000ms 05:13:01.750 [debug] Current batch of media processed. Will check again in 1000ms 05:13:02.751 [debug] Current batch of media processed. Will check again in 1000ms 05:13:03.752 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 05:13:03.755 [info] {"source":"oban","duration":3290,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:03.756 [debug] QUERY OK source="sources" db=3.1ms queue=0.3ms idle=1018.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:13:03.757 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=515.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:03.801 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=66.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 05:13:03.988 [debug] QUERY OK source="media_items" db=185.1ms idle=68.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "e24f6dbc-d326-48ab-bbf9-36fd0e169345", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 05:13:03Z], ~U[2026-03-11 05:13:03Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 05:13:03.992 [debug] QUERY OK source="sources" db=3.5ms idle=233.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:04.032 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.3ms idle=274.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:13:04.034 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=276.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 [36333] 05:13:04.035 [debug] Current batch of media processed. Will check again in 1000ms 05:13:05.036 [debug] Current batch of media processed. Will check again in 1000ms 05:13:06.267 [debug] Current batch of media processed. Will check again in 1000ms 05:13:07.269 [debug] Current batch of media processed. Will check again in 1000ms 05:13:08.483 [debug] Current batch of media processed. Will check again in 1000ms 05:13:09.485 [debug] Current batch of media processed. Will check again in 1000ms 05:13:10.487 [debug] Current batch of media processed. Will check again in 1000ms 05:13:11.488 [debug] Current batch of media processed. Will check again in 1000ms 05:13:12.452 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d8/9e/d89ec40df1c6cf758052c31a242fce8d1f0f55f05c6bab61813d696cad0ed6f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 05:13:12.638 [debug] Current batch of media processed. Will check again in 1000ms 05:13:12.819 [debug] Gracefully stopping file follower 05:13:12.851 [debug] QUERY OK source="sources" db=30.3ms queue=2.5ms idle=1084.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:13:12.906 [debug] QUERY OK source="sources" db=0.5ms queue=0.4ms idle=1171.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:12.949 [debug] QUERY OK source="media_items" db=42.5ms queue=0.1ms idle=1172.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 05:13:13.064 [debug] QUERY OK source="media_items" db=113.5ms idle=1216.2ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "6c727160-340b-4988-8143-5295b2f78c24", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 05:13:12Z], ~U[2026-03-11 05:13:12Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 05:13:13.120 [debug] QUERY OK source="sources" db=1.2ms queue=0.3ms idle=478.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.123 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=270.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 05:13:13.130 [debug] QUERY OK source="media_items" db=4.8ms idle=217.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "edb577e6-f332-425e-9699-aebd8274472c", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 05:13:13.131 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=180.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.165 [debug] QUERY OK source="media_items" db=31.7ms queue=0.1ms idle=69.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 05:13:13.235 [debug] QUERY OK source="media_items" db=47.0ms idle=45.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "de598920-ac8b-41a4-a1d2-dd56ce87364a", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 05:13:13.247 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=122.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.253 [debug] QUERY OK source="media_items" db=1.4ms queue=0.2ms idle=121.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 05:13:13.439 [debug] QUERY OK source="media_items" db=85.9ms queue=0.1ms idle=219.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "a6872b24-175c-42d1-a322-3f2c2d2f9fcb", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 05:13:13.445 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=278.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.448 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=232.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 05:13:13.602 [debug] QUERY OK source="media_items" db=149.9ms idle=202.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "9167ae3e-4e48-40f6-9e69-966de80c5f2e", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 05:13:13.606 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=352.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.608 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=169.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 05:13:13.641 [debug] QUERY OK source="media_items" db=28.3ms queue=0.1ms idle=165.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "2156379c-ac1e-40a9-a66e-f6439dbc8a42", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 05:13:13.662 [debug] QUERY OK source="sources" db=0.2ms queue=2.3ms idle=211.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.664 [debug] QUERY OK source="media_items" db=0.5ms idle=57.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 05:13:13.694 [debug] QUERY OK source="media_items" db=27.6ms idle=57.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "1c29aa85-ba21-40fe-a10a-6e65befde00f", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 05:13:13.699 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=58.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.700 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=37.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 05:13:13.754 [debug] QUERY OK source="media_items" db=20.7ms queue=0.1ms idle=70.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "b212d367-c19b-4606-8ff8-1250e8e7b40e", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 05:13:13.757 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=91.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.759 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=65.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 05:13:13.786 [debug] QUERY OK source="media_items" db=23.0ms idle=61.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "83bf73cb-4945-4d20-95bb-558609af2330", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 05:13:13.791 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=89.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:13:13.794 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=38.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 05:13:14.006 [debug] QUERY OK source="media_items" db=210.6ms queue=0.1ms idle=38.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "82fef673-d0fa-41f5-9764-afb2ba29b511", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 05:13:13Z], ~U[2026-03-11 05:13:13Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 05:13:14.515 [debug] QUERY OK source="sources" db=2.6ms queue=0.5ms idle=752.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 05:13:14Z], ~U[2026-03-11 05:13:14Z], 1] 05:13:14.559 [debug] QUERY OK source="media_items" db=22.3ms queue=1.7ms idle=751.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 05:13:14.579 [debug] QUERY OK source="media_items" db=18.1ms queue=0.1ms idle=769.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 05:13:14.780 [debug] QUERY OK source="media_items" db=46.5ms queue=1.7ms idle=937.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 05:13:15.477 [debug] QUERY OK source="tasks" db=73.6ms queue=0.1ms idle=824.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3230, 1, ~U[2026-03-11 05:13:15Z], ~U[2026-03-11 05:13:15Z]] 05:13:15.545 [info] {"args":{"id":1},"id":3229,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":167255326,"event":"job:stop","queue_time":255377,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:13:33.757 [info] {"source":"oban","duration":1798,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:13:45.992 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:14:00.748 [info] {"source":"oban","duration":346,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:14:03.761 [info] {"source":"oban","duration":2201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:14:33.763 [info] {"source":"oban","duration":1614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:00.750 [info] {"source":"oban","duration":919,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:15:03.767 [info] {"source":"oban","duration":2355,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:15:33.769 [info] {"source":"oban","duration":1837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:00.751 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:16:03.772 [info] {"source":"oban","duration":1659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:16:33.776 [info] {"source":"oban","duration":1775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:17:00.753 [info] {"source":"oban","duration":498,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:17:03.779 [info] {"source":"oban","duration":2127,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:17:33.782 [info] {"source":"oban","duration":1940,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:00.755 [info] {"source":"oban","duration":551,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:18:03.785 [info] {"source":"oban","duration":1935,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:18:33.787 [info] {"source":"oban","duration":1745,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:19:00.757 [info] {"source":"oban","duration":532,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:19:03.790 [info] {"source":"oban","duration":1866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:19:33.794 [info] {"source":"oban","duration":1846,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:00.759 [info] {"source":"oban","duration":316,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:20:03.796 [info] {"source":"oban","duration":1789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:20:33.800 [info] {"source":"oban","duration":2674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:00.760 [info] {"source":"oban","duration":641,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:21:03.809 [info] {"source":"oban","duration":7356,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:33.813 [info] {"source":"oban","duration":1394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:21:46.088 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:22:00.763 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:22:03.816 [info] {"source":"oban","duration":1817,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:22:33.819 [info] {"source":"oban","duration":1756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:23:00.764 [info] {"source":"oban","duration":325,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:23:03.823 [info] {"source":"oban","duration":2281,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:23:33.826 [info] {"source":"oban","duration":2023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:00.765 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:24:03.829 [info] {"source":"oban","duration":2140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:24:33.832 [info] {"source":"oban","duration":2289,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:00.768 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:25:03.835 [info] {"source":"oban","duration":2076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:25:33.837 [info] {"source":"oban","duration":1764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:00.769 [info] {"source":"oban","duration":554,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:26:03.840 [info] {"source":"oban","duration":1536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:26:33.843 [info] {"source":"oban","duration":1424,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:00.772 [info] {"source":"oban","duration":884,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:27:03.846 [info] {"source":"oban","duration":1915,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:33.849 [info] {"source":"oban","duration":1905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:27:46.194 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:28:00.794 [info] {"source":"oban","duration":416,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:28:03.852 [info] {"source":"oban","duration":1974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:28:33.855 [info] {"source":"oban","duration":1872,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:29:00.796 [info] {"source":"oban","duration":362,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:29:04.089 [info] {"source":"oban","duration":233501,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 05:29:34.092 [info] {"source":"oban","duration":2453,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:30:00.798 [info] {"source":"oban","duration":876,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:30:04.095 [info] {"source":"oban","duration":1802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:30:34.099 [info] {"source":"oban","duration":2129,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:00.799 [info] {"source":"oban","duration":345,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:31:04.102 [info] {"source":"oban","duration":2868,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:34.105 [info] {"source":"oban","duration":1609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:31:46.340 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:32:00.800 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:32:04.108 [info] {"source":"oban","duration":1902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:32:34.111 [info] {"source":"oban","duration":1624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:00.801 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:33:04.114 [info] {"source":"oban","duration":1534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:33:34.118 [info] {"source":"oban","duration":3053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:00.804 [info] {"source":"oban","duration":892,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:34:04.120 [info] {"source":"oban","duration":1838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:34:34.123 [info] {"source":"oban","duration":1541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:35:00.806 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:35:04.127 [info] {"source":"oban","duration":2002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:35:34.129 [info] {"source":"oban","duration":1556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:00.808 [info] {"source":"oban","duration":489,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:36:04.132 [info] {"source":"oban","duration":1660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:36:34.135 [info] {"source":"oban","duration":1621,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:00.830 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:37:04.139 [info] {"source":"oban","duration":2037,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:34.141 [info] {"source":"oban","duration":1466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:37:46.381 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:38:00.832 [info] {"source":"oban","duration":404,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:38:04.144 [info] {"source":"oban","duration":2051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:38:34.146 [info] {"source":"oban","duration":1515,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:00.834 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:39:04.149 [info] {"source":"oban","duration":2033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:39:34.151 [info] {"source":"oban","duration":1566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:40:00.836 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:40:04.155 [info] {"source":"oban","duration":2364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:40:34.159 [info] {"source":"oban","duration":2072,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:00.839 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:41:04.161 [info] {"source":"oban","duration":1375,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:34.164 [info] {"source":"oban","duration":2193,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:41:46.411 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:42:00.841 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:42:04.167 [info] {"source":"oban","duration":1899,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:42:34.170 [info] {"source":"oban","duration":2263,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:00.843 [info] {"source":"oban","duration":452,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:43:04.172 [info] {"source":"oban","duration":1662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:15.950 [info] {"args":{"id":1},"id":3230,"meta":{},"system_time":1773207795802681943,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:43:16.052 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=2022.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:16.071 [debug] QUERY OK source="settings" db=17.7ms queue=0.2ms idle=1024.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:43:16.078 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=283.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 05:43:16.115 [debug] QUERY OK source="media_items" db=12.2ms queue=0.2ms idle=303.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 05:43:16.117 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=64.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:16.268 [debug] QUERY OK source="settings" db=19.9ms queue=0.2ms idle=196.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:43:16.578 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 05:43:16.579 [debug] Current batch of media processed. Will check again in 1000ms 05:43:16.579 [debug] QUERY OK source="settings" db=0.4ms queue=0.3ms idle=508.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:43:16.610 [debug] QUERY OK source="settings" db=29.0ms idle=502.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:43:16.612 [debug] QUERY OK source="settings" db=0.8ms decode=0.1ms queue=0.1ms idle=495.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 05:43:16.789 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/af/5c/af5cb646226ae2f102ad8669404a2885f37c9cac103b3c73b36054d90c3301fa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 05:43:17.580 [debug] Current batch of media processed. Will check again in 1000ms 05:43:18.581 [debug] Current batch of media processed. Will check again in 1000ms 05:43:19.582 [debug] Current batch of media processed. Will check again in 1000ms 05:43:20.583 [debug] Current batch of media processed. Will check again in 1000ms 05:43:21.584 [debug] Current batch of media processed. Will check again in 1000ms 05:43:22.585 [debug] Current batch of media processed. Will check again in 1000ms 05:43:23.587 [debug] Current batch of media processed. Will check again in 1000ms 05:43:24.589 [debug] Current batch of media processed. Will check again in 1000ms 05:43:25.590 [debug] Current batch of media processed. Will check again in 1000ms 05:43:26.633 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 05:43:26.646 [debug] QUERY OK source="sources" db=11.1ms queue=0.1ms idle=1584.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:26.663 [debug] QUERY OK source="sources" db=0.7ms queue=0.5ms idle=1611.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:26.901 [debug] QUERY OK source="media_items" db=236.6ms queue=0.1ms idle=835.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 05:43:26.933 [debug] QUERY OK source="media_items" db=30.3ms idle=851.4ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "485bc7d5-0b5a-4c59-8fec-2e626e7789f6", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 05:43:26Z], ~U[2026-03-11 05:43:26Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 05:43:26.937 [debug] QUERY OK source="sources" db=2.2ms queue=0.3ms idle=287.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:26.939 [debug] QUERY OK source="media_profiles" db=2.1ms queue=0.2ms idle=273.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:26.943 [debug] QUERY OK source="media_items" db=2.1ms idle=40.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 [37332] 05:43:26.944 [debug] Current batch of media processed. Will check again in 1000ms 05:43:27.946 [debug] Current batch of media processed. Will check again in 1000ms 05:43:28.948 [debug] Current batch of media processed. Will check again in 1000ms 05:43:29.949 [debug] Current batch of media processed. Will check again in 1000ms 05:43:30.950 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 05:43:30.952 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=899.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:30.954 [debug] QUERY OK source="sources" db=0.8ms idle=900.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:30.956 [debug] QUERY OK source="media_items" db=1.8ms queue=0.3ms idle=902.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 05:43:31.016 [debug] QUERY OK source="media_items" db=58.9ms queue=0.1ms idle=905.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "a6475637-127e-48ae-b714-0af591033d19", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 05:43:30Z], ~U[2026-03-11 05:43:30Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 05:43:31.031 [debug] QUERY OK source="sources" db=0.9ms idle=112.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:31.033 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=80.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:31.100 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=144.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 [36910] 05:43:31.100 [debug] Current batch of media processed. Will check again in 1000ms 05:43:32.101 [debug] Current batch of media processed. Will check again in 1000ms 05:43:33.125 [debug] Current batch of media processed. Will check again in 1000ms 05:43:34.127 [debug] Current batch of media processed. Will check again in 1000ms 05:43:34.177 [info] {"source":"oban","duration":2976,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:43:35.129 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 05:43:35.132 [debug] QUERY OK source="sources" db=1.0ms queue=0.3ms idle=1032.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:35.134 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1034.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:35.136 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1036.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 05:43:35.210 [debug] QUERY OK source="media_items" db=71.9ms idle=960.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "befe479f-3118-496c-8a25-9d2389d34712", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 05:43:35Z], ~U[2026-03-11 05:43:35Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 05:43:35.231 [debug] QUERY OK source="sources" db=1.7ms queue=0.2ms idle=176.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:35.268 [debug] QUERY OK source="media_profiles" db=2.0ms queue=0.3ms idle=133.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:35.270 [debug] QUERY OK source="media_items" db=1.0ms queue=0.3ms idle=134.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 [36578] 05:43:35.271 [debug] Current batch of media processed. Will check again in 1000ms 05:43:36.272 [debug] Current batch of media processed. Will check again in 1000ms 05:43:37.273 [debug] Current batch of media processed. Will check again in 1000ms 05:43:38.275 [debug] Current batch of media processed. Will check again in 1000ms 05:43:39.276 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 05:43:39.386 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=309.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:39.387 [debug] QUERY OK source="sources" db=1.2ms idle=284.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:39.440 [debug] QUERY OK source="media_items" db=1.0ms idle=337.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 05:43:39.526 [debug] QUERY OK source="media_items" db=84.1ms idle=339.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "ffa02eab-e262-4350-a485-0a43e689600c", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 05:43:39Z], ~U[2026-03-11 05:43:39Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 05:43:39.527 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=424.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:39.528 [debug] QUERY OK source="media_profiles" db=0.6ms idle=141.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:39.564 [debug] QUERY OK source="media_items" db=35.5ms idle=141.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 [36579] 05:43:39.565 [debug] Current batch of media processed. Will check again in 1000ms 05:43:40.566 [debug] Current batch of media processed. Will check again in 1000ms 05:43:41.567 [debug] Current batch of media processed. Will check again in 1000ms 05:43:42.568 [debug] Current batch of media processed. Will check again in 1000ms 05:43:43.570 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 05:43:43.610 [debug] QUERY OK source="sources" db=0.8ms queue=15.1ms idle=492.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:43.612 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=509.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:43.667 [debug] QUERY OK source="media_items" db=0.6ms queue=1.7ms idle=560.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 05:43:43.703 [debug] QUERY OK source="media_items" db=24.8ms idle=575.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "1635d4a3-42c3-4f67-aa56-1727887de7b3", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 05:43:43Z], ~U[2026-03-11 05:43:43Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 05:43:43.708 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=604.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:43.710 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=98.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:43.711 [debug] QUERY OK source="media_items" db=0.7ms idle=98.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 [36580] 05:43:43.712 [debug] Current batch of media processed. Will check again in 1000ms 05:43:44.713 [debug] Current batch of media processed. Will check again in 1000ms 05:43:45.714 [debug] Current batch of media processed. Will check again in 1000ms 05:43:46.715 [debug] Current batch of media processed. Will check again in 1000ms 05:43:47.716 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 05:43:47.718 [debug] QUERY OK source="sources" db=0.8ms idle=1605.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:47.719 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=613.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:47.721 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=614.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 05:43:47.784 [debug] QUERY OK source="media_items" db=61.6ms idle=616.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "236b6a4a-8a4a-4593-9748-417f4334a436", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 05:43:47Z], ~U[2026-03-11 05:43:47Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 05:43:47.786 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=669.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:47.805 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=68.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:47.812 [debug] QUERY OK source="media_items" db=0.9ms idle=91.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 [36581] 05:43:47.812 [debug] Current batch of media processed. Will check again in 1000ms 05:43:48.814 [debug] Current batch of media processed. Will check again in 1000ms 05:43:49.816 [debug] Current batch of media processed. Will check again in 1000ms 05:43:50.817 [debug] Current batch of media processed. Will check again in 1000ms 05:43:51.818 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 05:43:51.820 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=714.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:51.822 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=716.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:51.823 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=717.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 05:43:51.876 [debug] QUERY OK source="media_items" db=51.6ms idle=718.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "1eae55d7-71f5-4a7b-8b08-0b7e0eb1b149", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 05:43:51Z], ~U[2026-03-11 05:43:51Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 05:43:51.878 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=747.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:51.879 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=58.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:51.881 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=57.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 [36582] 05:43:51.881 [debug] Current batch of media processed. Will check again in 1000ms 05:43:52.882 [debug] Current batch of media processed. Will check again in 1000ms 05:43:53.883 [debug] Current batch of media processed. Will check again in 1000ms 05:43:54.884 [debug] Current batch of media processed. Will check again in 1000ms 05:43:55.896 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 05:43:55.897 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=791.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:43:55.899 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=792.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:55.901 [debug] QUERY OK source="media_items" db=1.2ms idle=794.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 05:43:55.962 [debug] QUERY OK source="media_items" db=59.9ms idle=796.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "ee975cba-2563-4cec-b76a-3fff53b14c11", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 05:43:55Z], ~U[2026-03-11 05:43:55Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 05:43:55.963 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=816.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:43:55.982 [debug] QUERY OK source="media_profiles" db=1.2ms idle=66.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:43:55.984 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=83.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 [36583] 05:43:55.984 [debug] Current batch of media processed. Will check again in 1000ms 05:43:56.985 [debug] Current batch of media processed. Will check again in 1000ms 05:43:57.986 [debug] Current batch of media processed. Will check again in 1000ms 05:43:58.988 [debug] Current batch of media processed. Will check again in 1000ms 05:44:00.208 [debug] Current batch of media processed. Will check again in 1000ms 05:44:00.845 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:44:01.209 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 05:44:01.212 [debug] QUERY OK source="sources" db=1.4ms queue=1.0ms idle=997.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:44:01.216 [debug] QUERY OK source="sources" db=2.0ms queue=1.4ms idle=367.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:01.219 [debug] QUERY OK source="media_items" db=2.0ms queue=1.1ms idle=9.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 05:44:01.488 [debug] QUERY OK source="media_items" db=264.3ms queue=0.5ms idle=16.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "b93ff2ef-6062-4eea-9372-183fc43e100f", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 05:44:01Z], ~U[2026-03-11 05:44:01Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 05:44:01.490 [debug] QUERY OK source="sources" db=0.9ms idle=276.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:01.491 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.3ms idle=274.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:44:01.492 [debug] QUERY OK source="media_items" db=0.5ms idle=272.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 [36439] 05:44:01.493 [debug] Current batch of media processed. Will check again in 1000ms 05:44:02.707 [debug] Current batch of media processed. Will check again in 1000ms 05:44:03.707 [debug] Current batch of media processed. Will check again in 1000ms 05:44:04.209 [info] {"source":"oban","duration":2565,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:04.709 [debug] Current batch of media processed. Will check again in 1000ms 05:44:05.710 [debug] Current batch of media processed. Will check again in 1000ms 05:44:07.213 [debug] Current batch of media processed. Will check again in 1000ms 05:44:08.215 [debug] Current batch of media processed. Will check again in 1000ms 05:44:09.217 [debug] Current batch of media processed. Will check again in 1000ms 05:44:10.219 [debug] Current batch of media processed. Will check again in 1000ms 05:44:11.221 [debug] Current batch of media processed. Will check again in 1000ms 05:44:12.223 [debug] Current batch of media processed. Will check again in 1000ms 05:44:13.224 [debug] Current batch of media processed. Will check again in 1000ms 05:44:14.225 [debug] Current batch of media processed. Will check again in 1000ms 05:44:15.226 [debug] Current batch of media processed. Will check again in 1000ms 05:44:16.227 [debug] Current batch of media processed. Will check again in 1000ms 05:44:17.228 [debug] Current batch of media processed. Will check again in 1000ms 05:44:18.229 [debug] Current batch of media processed. Will check again in 1000ms 05:44:19.230 [debug] Current batch of media processed. Will check again in 1000ms 05:44:20.231 [debug] Current batch of media processed. Will check again in 1000ms 05:44:21.232 [debug] Current batch of media processed. Will check again in 1000ms 05:44:22.233 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 05:44:22.457 [debug] QUERY OK source="sources" db=223.6ms queue=0.1ms idle=1012.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:44:22.463 [debug] QUERY OK source="sources" db=4.8ms decode=0.1ms queue=0.2ms idle=1236.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:22.470 [debug] QUERY OK source="media_items" db=6.1ms queue=0.1ms idle=1234.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 05:44:22.721 [debug] QUERY OK source="media_items" db=249.7ms queue=0.1ms idle=249.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "06dfba2c-3e2e-43e8-a6d4-6c9bd67086a1", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 05:44:22Z], ~U[2026-03-11 05:44:22Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 05:44:22.724 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=489.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:22.727 [debug] QUERY OK source="media_profiles" db=2.8ms queue=0.1ms idle=267.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 05:44:22.730 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=265.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 [36333] 05:44:22.732 [debug] Current batch of media processed. Will check again in 1000ms 05:44:23.734 [debug] Current batch of media processed. Will check again in 1000ms 05:44:24.735 [debug] Current batch of media processed. Will check again in 1000ms 05:44:24.757 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/af/5c/af5cb646226ae2f102ad8669404a2885f37c9cac103b3c73b36054d90c3301fa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 05:44:24.779 [debug] Gracefully stopping file follower 05:44:24.958 [debug] QUERY OK source="sources" db=0.7ms decode=177.5ms queue=0.4ms idle=558.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 05:44:24.959 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms 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" = ?) [1] 05:44:24.960 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=738.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 05:44:24.992 [debug] QUERY OK source="media_items" db=15.2ms queue=0.1ms idle=756.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "6a381120-50f1-4d33-84ab-039665f26887", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 05:44:24Z], ~U[2026-03-11 05:44:24Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 05:44:24.994 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=755.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:24.995 [debug] QUERY OK source="media_items" db=0.5ms idle=214.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 05:44:25.022 [debug] QUERY OK source="media_items" db=25.5ms idle=36.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "8ab2a151-0d8c-4eac-a16a-f49f361e9a1b", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 05:44:24Z], ~U[2026-03-11 05:44:24Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 05:44:25.210 [debug] QUERY OK source="sources" db=0.5ms queue=1.8ms idle=247.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:25.314 [debug] QUERY OK source="media_items" db=0.7ms queue=2.0ms idle=316.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 05:44:25.349 [debug] QUERY OK source="media_items" db=34.6ms idle=318.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "f6f31361-f50c-4556-82f6-0ba1b8a8a239", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 05:44:25Z], ~U[2026-03-11 05:44:25Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 05:44:25.351 [debug] QUERY OK source="sources" db=0.3ms queue=0.3ms idle=328.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:25.352 [debug] QUERY OK source="media_items" db=0.6ms idle=141.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 05:44:25.480 [debug] QUERY OK source="media_items" db=127.1ms idle=109.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "845b05b2-6d39-4cd7-baad-9ce4db6c48ff", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 05:44:25Z], ~U[2026-03-11 05:44:25Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 05:44:25.481 [debug] QUERY OK source="sources" db=0.8ms idle=167.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:25.482 [debug] QUERY OK source="media_items" db=0.6ms idle=132.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 05:44:25.506 [debug] QUERY OK source="media_items" db=22.2ms idle=132.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "ab07776c-2270-4424-9b24-033476d49d14", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 05:44:25Z], ~U[2026-03-11 05:44:25Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 05:44:25.561 [debug] QUERY OK source="sources" db=2.0ms queue=0.2ms idle=206.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:25.563 [debug] QUERY OK source="media_items" db=0.8ms idle=82.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 05:44:25.913 [debug] QUERY OK source="media_items" db=347.1ms idle=82.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "a257742b-4930-4fc2-b1e6-ebccbd1ade44", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 05:44:25Z], ~U[2026-03-11 05:44:25Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 05:44:25.958 [debug] QUERY OK source="sources" db=2.2ms queue=2.4ms idle=470.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:25.972 [debug] QUERY OK source="media_items" db=3.5ms queue=0.2ms idle=460.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 05:44:25.998 [debug] QUERY OK source="media_items" db=20.2ms queue=0.1ms idle=417.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "cdb78dd8-c1e9-4004-bfed-06e4bf775201", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 05:44:25Z], ~U[2026-03-11 05:44:25Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 05:44:26.005 [debug] QUERY OK source="sources" db=0.8ms queue=0.3ms idle=441.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:26.007 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=94.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 05:44:26.033 [debug] QUERY OK source="media_items" db=24.4ms queue=0.1ms idle=50.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "a8edb4e0-eb13-42ca-8842-51162a5152ff", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 05:44:26Z], ~U[2026-03-11 05:44:26Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 05:44:26.059 [debug] QUERY OK source="sources" db=0.7ms queue=0.4ms idle=88.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:26.208 [debug] QUERY OK source="media_items" db=148.9ms idle=61.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 05:44:26.240 [debug] QUERY OK source="media_items" db=29.9ms idle=203.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "647c6200-2993-4d0a-b41a-e8423a82c47c", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 05:44:26Z], ~U[2026-03-11 05:44:26Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 05:44:26.244 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=235.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 05:44:26.247 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=187.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 05:44:26.263 [debug] QUERY OK source="media_items" db=15.2ms idle=38.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "a305e90a-16a1-46f7-bd14-ae680ca9e865", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 05:44:26Z], ~U[2026-03-11 05:44:26Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 05:44:26.267 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=25.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 05:44:26Z], ~U[2026-03-11 05:44:26Z], 1] 05:44:26.271 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=25.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 05:44:26.458 [debug] QUERY OK source="media_items" db=186.3ms idle=26.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")))) [1] 05:44:26.460 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=212.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 05:44:26.963 [debug] QUERY OK source="tasks" db=486.0ms queue=0.1ms idle=204.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3231, 1, ~U[2026-03-11 05:44:26Z], ~U[2026-03-11 05:44:26Z]] 05:44:26.971 [info] {"args":{"id":1},"id":3230,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":71160543,"event":"job:stop","queue_time":664497,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 05:44:34.211 [info] {"source":"oban","duration":1629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:44:46.437 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:45:00.848 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:45:04.215 [info] {"source":"oban","duration":2294,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:45:34.218 [info] {"source":"oban","duration":2236,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:00.849 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:46:04.220 [info] {"source":"oban","duration":1623,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:46:34.224 [info] {"source":"oban","duration":1858,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:00.851 [info] {"source":"oban","duration":441,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:47:04.227 [info] {"source":"oban","duration":1963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:47:34.230 [info] {"source":"oban","duration":1895,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:48:00.853 [info] {"source":"oban","duration":473,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:48:04.233 [info] {"source":"oban","duration":2629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:48:34.237 [info] {"source":"oban","duration":1954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:49:00.856 [info] {"source":"oban","duration":732,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:49:04.253 [info] {"source":"oban","duration":15614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:49:34.257 [info] {"source":"oban","duration":2480,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:00.857 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:50:04.260 [info] {"source":"oban","duration":1569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:50:34.264 [info] {"source":"oban","duration":2124,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:00.859 [info] {"source":"oban","duration":541,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:51:04.268 [info] {"source":"oban","duration":3807,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:34.272 [info] {"source":"oban","duration":2058,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:51:46.629 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 05:52:00.861 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:52:04.274 [info] {"source":"oban","duration":1485,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:52:34.700 [info] {"source":"oban","duration":424774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:53:00.863 [info] {"source":"oban","duration":495,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:53:04.718 [info] {"source":"oban","duration":16228,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:53:34.720 [info] {"source":"oban","duration":1438,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:00.865 [info] {"source":"oban","duration":453,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:54:04.723 [info] {"source":"oban","duration":1978,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:54:34.725 [info] {"source":"oban","duration":1541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:00.867 [info] {"source":"oban","duration":340,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:55:04.727 [info] {"source":"oban","duration":1692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:55:34.730 [info] {"source":"oban","duration":1478,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:56:00.868 [info] {"source":"oban","duration":686,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:56:04.733 [info] {"source":"oban","duration":2094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:56:34.735 [info] {"source":"oban","duration":1662,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:00.870 [info] {"source":"oban","duration":831,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:57:04.740 [info] {"source":"oban","duration":3285,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:34.743 [info] {"source":"oban","duration":1879,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:57:46.680 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 05:58:00.872 [info] {"source":"oban","duration":325,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:58:04.747 [info] {"source":"oban","duration":2336,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:58:34.749 [info] {"source":"oban","duration":1468,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:59:00.874 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 05:59:04.751 [info] {"source":"oban","duration":1869,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 05:59:34.754 [info] {"source":"oban","duration":1722,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:00:00.876 [info] {"source":"oban","duration":577,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:00:04.757 [info] {"source":"oban","duration":1453,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:00:34.760 [info] {"source":"oban","duration":1712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:00.878 [info] {"source":"oban","duration":475,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:01:04.763 [info] {"source":"oban","duration":1336,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:34.765 [info] {"source":"oban","duration":1658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:01:46.696 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:02:00.880 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:02:04.768 [info] {"source":"oban","duration":1558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:02:34.771 [info] {"source":"oban","duration":1660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:00.883 [info] {"source":"oban","duration":837,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:03:04.774 [info] {"source":"oban","duration":1496,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:03:34.776 [info] {"source":"oban","duration":1545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:04:00.884 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:04:04.881 [info] {"source":"oban","duration":102919,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:04:34.883 [info] {"source":"oban","duration":1561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:00.886 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:05:04.885 [info] {"source":"oban","duration":1830,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:05:34.889 [info] {"source":"oban","duration":2201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:06:00.888 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:06:04.893 [info] {"source":"oban","duration":1869,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:06:34.896 [info] {"source":"oban","duration":2097,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:00.890 [info] {"source":"oban","duration":488,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:07:04.899 [info] {"source":"oban","duration":1954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:07:34.901 [info] {"source":"oban","duration":1889,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:00.892 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:08:04.905 [info] {"source":"oban","duration":1939,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:34.907 [info] {"source":"oban","duration":1644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:08:46.744 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:09:00.894 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:09:04.910 [info] {"source":"oban","duration":1568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:09:34.912 [info] {"source":"oban","duration":1579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:10:00.896 [info] {"source":"oban","duration":777,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:10:04.915 [info] {"source":"oban","duration":1414,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:10:34.917 [info] {"source":"oban","duration":1801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:00.898 [info] {"source":"oban","duration":564,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:11:04.920 [info] {"source":"oban","duration":1523,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:34.922 [info] {"source":"oban","duration":1632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:11:46.765 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:12:00.900 [info] {"source":"oban","duration":389,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:12:04.926 [info] {"source":"oban","duration":1968,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:12:34.975 [info] {"source":"oban","duration":47801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:00.902 [info] {"source":"oban","duration":439,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:13:04.978 [info] {"source":"oban","duration":2599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:13:34.981 [info] {"source":"oban","duration":1299,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:00.903 [info] {"source":"oban","duration":648,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:14:04.983 [info] {"source":"oban","duration":1915,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:27.442 [info] {"args":{"id":1},"id":3231,"meta":{},"system_time":1773209667268444341,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:14:27.568 [debug] QUERY OK source="sources" db=2.9ms queue=0.2ms idle=1220.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:27.729 [debug] QUERY OK source="settings" db=40.2ms queue=0.4ms idle=1343.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:14:27.919 [debug] QUERY OK source="media_items" db=188.1ms queue=0.1ms idle=1386.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 06:14:27.968 [debug] QUERY OK source="media_items" db=48.3ms queue=0.3ms idle=662.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 06:14:27.970 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=702.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:28.142 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=574.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:14:28.397 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 06:14:28.400 [debug] Current batch of media processed. Will check again in 1000ms 06:14:28.401 [debug] QUERY OK source="settings" db=2.5ms idle=479.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:14:28.402 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=433.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:14:28.424 [debug] QUERY OK source="settings" db=20.7ms queue=0.3ms idle=432.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:14:28.561 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/93/4c/934c9c8213f605aa0a03d5d791733354db1495415bf3455d84815ebe2b4a7168.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:14:29.402 [debug] Current batch of media processed. Will check again in 1000ms 06:14:30.403 [debug] Current batch of media processed. Will check again in 1000ms 06:14:31.404 [debug] Current batch of media processed. Will check again in 1000ms 06:14:32.405 [debug] Current batch of media processed. Will check again in 1000ms 06:14:33.406 [debug] Current batch of media processed. Will check again in 1000ms 06:14:34.407 [debug] Current batch of media processed. Will check again in 1000ms 06:14:34.987 [info] {"source":"oban","duration":2394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:14:35.408 [debug] Current batch of media processed. Will check again in 1000ms 06:14:36.415 [debug] Current batch of media processed. Will check again in 1000ms 06:14:37.417 [debug] Current batch of media processed. Will check again in 1000ms 06:14:38.418 [debug] Current batch of media processed. Will check again in 1000ms 06:14:39.577 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 06:14:39.969 [debug] QUERY OK source="sources" db=50.8ms queue=0.2ms idle=1519.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:14:40.188 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=1788.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:40.682 [debug] QUERY OK source="media_items" db=271.7ms queue=0.3ms idle=1987.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 06:14:41.081 [debug] QUERY OK source="media_items" db=248.0ms queue=0.1ms idle=863.3ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "053393b3-39cb-4fae-8362-1aa1af6f6d8f", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 06:14:40Z], ~U[2026-03-11 06:14:40Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 06:14:41.094 [debug] QUERY OK source="sources" db=3.7ms queue=0.1ms idle=934.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:41.177 [debug] QUERY OK source="media_profiles" db=77.2ms queue=0.5ms idle=910.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:41.265 [debug] QUERY OK source="media_items" db=41.2ms queue=0.4ms idle=565.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 [37332] 06:14:41.266 [debug] Current batch of media processed. Will check again in 1000ms 06:14:42.268 [debug] Current batch of media processed. Will check again in 1000ms 06:14:43.290 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 06:14:43.317 [debug] QUERY OK source="sources" db=25.7ms idle=888.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:14:43.318 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=914.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:43.322 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=916.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 06:14:43.733 [debug] QUERY OK source="media_items" db=409.3ms idle=919.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "470d5e58-5f71-475c-802f-b60d3b5e4216", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 06:14:43Z], ~U[2026-03-11 06:14:43Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 06:14:43.754 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=519.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:43.757 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=439.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:43.758 [debug] QUERY OK source="media_items" db=0.5ms idle=439.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 [36910] 06:14:43.759 [debug] Current batch of media processed. Will check again in 1000ms 06:14:44.760 [debug] Current batch of media processed. Will check again in 1000ms 06:14:45.761 [debug] Current batch of media processed. Will check again in 1000ms 06:14:46.762 [debug] Current batch of media processed. Will check again in 1000ms 06:14:47.765 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 06:14:47.769 [debug] QUERY OK source="sources" db=1.0ms idle=517.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:14:47.771 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=366.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:47.841 [debug] QUERY OK source="media_items" db=1.3ms queue=0.3ms idle=436.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 06:14:47.894 [debug] QUERY OK source="media_items" db=49.1ms queue=0.3ms idle=441.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "4914ada5-7572-492a-bc09-1bf185d89e54", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 06:14:47Z], ~U[2026-03-11 06:14:47Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 06:14:47.898 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=493.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:47.918 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=148.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:47.987 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=215.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 [36578] 06:14:47.989 [debug] Current batch of media processed. Will check again in 1000ms 06:14:48.991 [debug] Current batch of media processed. Will check again in 1000ms 06:14:49.992 [debug] Current batch of media processed. Will check again in 1000ms 06:14:50.994 [debug] Current batch of media processed. Will check again in 1000ms 06:14:51.996 [debug] Current batch of media processed. Will check again in 1000ms 06:14:53.013 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 06:14:53.016 [debug] QUERY OK source="sources" db=1.3ms queue=0.3ms idle=1611.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:14:53.018 [debug] QUERY OK source="sources" db=1.3ms queue=0.7ms idle=1613.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:53.020 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1616.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 06:14:53.090 [debug] QUERY OK source="media_items" db=53.3ms queue=0.2ms idle=1618.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "54497159-3357-45ce-bd89-e23e0a23375e", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 06:14:53Z], ~U[2026-03-11 06:14:53Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 06:14:53.098 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=795.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:53.100 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.4ms idle=83.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:53.138 [debug] QUERY OK source="media_items" db=1.1ms queue=0.3ms idle=118.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 [36579] 06:14:53.138 [debug] Current batch of media processed. Will check again in 1000ms 06:14:54.140 [debug] Current batch of media processed. Will check again in 1000ms 06:14:55.142 [debug] Current batch of media processed. Will check again in 1000ms 06:14:56.143 [debug] Current batch of media processed. Will check again in 1000ms 06:14:57.145 [debug] Current batch of media processed. Will check again in 1000ms 06:14:58.146 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 06:14:58.186 [debug] QUERY OK source="sources" db=9.6ms queue=0.1ms idle=1771.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:14:58.292 [debug] QUERY OK source="sources" db=3.2ms queue=0.2ms idle=1881.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:58.338 [debug] QUERY OK source="media_items" db=3.0ms queue=5.7ms idle=1924.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 06:14:58.582 [debug] QUERY OK source="media_items" db=109.9ms queue=3.5ms idle=234.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "e1fd85b2-3695-40ba-8cf4-a00cd5f674c7", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 06:14:58Z], ~U[2026-03-11 06:14:58Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 06:14:58.588 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=248.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:14:58.594 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.2ms idle=170.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:14:58.603 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=178.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 [36580] 06:14:58.609 [debug] Current batch of media processed. Will check again in 1000ms 06:14:59.610 [debug] Current batch of media processed. Will check again in 1000ms 06:15:00.612 [debug] Current batch of media processed. Will check again in 1000ms 06:15:00.906 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:15:01.613 [debug] Current batch of media processed. Will check again in 1000ms 06:15:02.616 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 06:15:02.668 [debug] QUERY OK source="sources" db=0.9ms queue=4.1ms idle=242.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:15:02.671 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=249.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:02.699 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=277.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 06:15:03.004 [debug] QUERY OK source="media_items" db=283.7ms queue=0.1ms idle=297.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "c5d46d2c-cb77-4662-8968-ac48da6daaf6", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 06:15:02Z], ~U[2026-03-11 06:15:02Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 06:15:03.085 [debug] QUERY OK source="sources" db=3.9ms queue=0.1ms idle=602.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:03.088 [debug] QUERY OK source="media_profiles" db=0.9ms queue=1.6ms idle=417.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:15:03.092 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=420.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 [36581] 06:15:03.094 [debug] Current batch of media processed. Will check again in 1000ms 06:15:04.096 [debug] Current batch of media processed. Will check again in 1000ms 06:15:05.099 [debug] Current batch of media processed. Will check again in 1000ms 06:15:05.253 [info] {"source":"oban","duration":265128,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:15:06.102 [debug] Current batch of media processed. Will check again in 1000ms 06:15:07.104 [debug] Current batch of media processed. Will check again in 1000ms 06:15:08.106 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 06:15:08.128 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1682.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:15:08.130 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1684.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:08.205 [debug] QUERY OK source="media_items" db=33.7ms queue=0.2ms idle=1726.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 06:15:08.378 [debug] QUERY OK source="media_items" db=148.3ms queue=0.1ms idle=1693.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "af1e891d-0108-4538-9396-3c03725893f3", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 06:15:08Z], ~U[2026-03-11 06:15:08Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 06:15:08.430 [debug] QUERY OK source="sources" db=1.4ms queue=0.4ms idle=913.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:08.432 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=302.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:15:08.435 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=304.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 [36582] 06:15:08.436 [debug] Current batch of media processed. Will check again in 1000ms 06:15:09.437 [debug] Current batch of media processed. Will check again in 1000ms 06:15:10.438 [debug] Current batch of media processed. Will check again in 1000ms 06:15:11.463 [debug] Current batch of media processed. Will check again in 1000ms 06:15:12.464 [debug] Current batch of media processed. Will check again in 1000ms 06:15:13.465 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 06:15:13.466 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1037.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:15:13.469 [debug] QUERY OK source="sources" db=0.9ms queue=1.1ms idle=1039.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:13.472 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1042.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 06:15:13.479 [debug] QUERY OK source="media_items" db=6.5ms idle=923.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "c9e5e59f-c8c3-4da9-abb1-304ad5dc8b6a", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 06:15:13Z], ~U[2026-03-11 06:15:13Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 06:15:13.482 [debug] QUERY OK source="sources" db=0.7ms queue=0.3ms idle=52.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:13.512 [debug] QUERY OK source="media_profiles" db=29.2ms queue=0.1ms idle=16.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:15:13.610 [debug] QUERY OK source="media_items" db=80.3ms idle=61.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 [36583] 06:15:13.612 [debug] Current batch of media processed. Will check again in 1000ms 06:15:14.658 [debug] Current batch of media processed. Will check again in 1000ms 06:15:15.660 [debug] Current batch of media processed. Will check again in 1000ms 06:15:16.661 [debug] Current batch of media processed. Will check again in 1000ms 06:15:17.661 [debug] Current batch of media processed. Will check again in 1000ms 06:15:18.686 [debug] Current batch of media processed. Will check again in 1000ms 06:15:19.687 [debug] Current batch of media processed. Will check again in 1000ms 06:15:20.909 [debug] Current batch of media processed. Will check again in 1000ms 06:15:21.910 [debug] Current batch of media processed. Will check again in 1000ms 06:15:22.913 [debug] Current batch of media processed. Will check again in 1000ms 06:15:23.915 [debug] Current batch of media processed. Will check again in 1000ms 06:15:24.927 [debug] Current batch of media processed. Will check again in 1000ms 06:15:25.928 [debug] Current batch of media processed. Will check again in 1000ms 06:15:27.169 [debug] Current batch of media processed. Will check again in 1000ms 06:15:28.170 [debug] Current batch of media processed. Will check again in 1000ms 06:15:29.407 [debug] Current batch of media processed. Will check again in 1000ms 06:15:30.408 [debug] Current batch of media processed. Will check again in 1000ms 06:15:31.409 [debug] Current batch of media processed. Will check again in 1000ms 06:15:32.410 [debug] Current batch of media processed. Will check again in 1000ms 06:15:33.411 [debug] Current batch of media processed. Will check again in 1000ms 06:15:34.412 [debug] Current batch of media processed. Will check again in 1000ms 06:15:35.410 [info] {"source":"oban","duration":2399,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:15:35.413 [debug] Current batch of media processed. Will check again in 1000ms 06:15:36.414 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 06:15:36.418 [debug] QUERY OK source="sources" db=3.0ms idle=1004.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:15:36.435 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:36.661 [debug] QUERY OK source="media_items" db=224.8ms idle=28.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 06:15:36.951 [debug] QUERY OK source="media_items" db=102.0ms queue=0.5ms idle=388.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "f424fe55-69b6-4de7-bf2b-d077fcd2c217", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 06:15:36Z], ~U[2026-03-11 06:15:36Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 06:15:37.051 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=632.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:15:37.052 [debug] QUERY OK source="media_profiles" db=0.9ms idle=616.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:15:37.054 [debug] QUERY OK source="media_items" db=0.7ms idle=392.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 [36439] 06:15:37.054 [debug] Current batch of media processed. Will check again in 1000ms 06:15:38.157 [debug] Current batch of media processed. Will check again in 1000ms 06:15:39.158 [debug] Current batch of media processed. Will check again in 1000ms 06:15:40.160 [debug] Current batch of media processed. Will check again in 1000ms 06:15:41.161 [debug] Current batch of media processed. Will check again in 1000ms 06:15:42.163 [debug] Current batch of media processed. Will check again in 1000ms 06:15:43.181 [debug] Current batch of media processed. Will check again in 1000ms 06:15:44.183 [debug] Current batch of media processed. Will check again in 1000ms 06:15:45.185 [debug] Current batch of media processed. Will check again in 1000ms 06:15:46.186 [debug] Current batch of media processed. Will check again in 1000ms 06:15:47.409 [debug] Current batch of media processed. Will check again in 1000ms 06:15:48.435 [debug] Current batch of media processed. Will check again in 1000ms 06:15:49.663 [debug] Current batch of media processed. Will check again in 1000ms 06:15:50.665 [debug] Current batch of media processed. Will check again in 1000ms 06:15:51.667 [debug] Current batch of media processed. Will check again in 1000ms 06:15:52.668 [debug] Current batch of media processed. Will check again in 1000ms 06:15:53.909 [debug] Current batch of media processed. Will check again in 1000ms 06:15:55.157 [debug] Current batch of media processed. Will check again in 1000ms 06:15:56.158 [debug] Current batch of media processed. Will check again in 1000ms 06:15:57.160 [debug] Current batch of media processed. Will check again in 1000ms 06:15:58.161 [debug] Current batch of media processed. Will check again in 1000ms 06:15:59.162 [debug] Current batch of media processed. Will check again in 1000ms 06:16:00.163 [debug] Current batch of media processed. Will check again in 1000ms 06:16:00.934 [info] {"source":"oban","duration":430,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:16:01.164 [debug] Current batch of media processed. Will check again in 1000ms 06:16:02.165 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 06:16:02.168 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=1507.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:16:02.170 [debug] QUERY OK source="sources" db=2.2ms idle=1510.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:02.174 [debug] QUERY OK source="media_items" db=2.8ms idle=1513.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 06:16:02.657 [debug] QUERY OK source="media_items" db=30.7ms queue=0.1ms idle=1473.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "1e96c7af-c04f-47b5-8eb7-47afe8c67e6d", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 06:16:02Z], ~U[2026-03-11 06:16:02Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 06:16:02.659 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=490.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:02.663 [debug] QUERY OK source="media_profiles" db=1.8ms queue=1.1ms idle=489.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:16:02.666 [debug] QUERY OK source="media_items" db=0.8ms queue=1.6ms idle=489.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 [36333] 06:16:02.666 [debug] Current batch of media processed. Will check again in 1000ms 06:16:03.667 [debug] Current batch of media processed. Will check again in 1000ms 06:16:04.286 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/93/4c/934c9c8213f605aa0a03d5d791733354db1495415bf3455d84815ebe2b4a7168.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 06:16:04.541 [debug] Gracefully stopping file follower 06:16:04.542 [debug] QUERY OK source="sources" db=1.0ms idle=1878.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:16:04.545 [debug] QUERY OK source="sources" db=1.9ms queue=0.2ms idle=1877.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.547 [debug] QUERY OK source="media_items" db=1.0ms idle=1118.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 06:16:04.563 [debug] QUERY OK source="media_items" db=14.8ms queue=0.1ms idle=889.6ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "ffea6a6b-e222-4586-b12f-5f04a1261dd7", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 06:16:04.564 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.566 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=22.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 06:16:04.584 [debug] QUERY OK source="media_items" db=16.8ms idle=21.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "0e799ada-d4d9-4d38-8b0f-36db3a0ec00c", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 06:16:04.585 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=37.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.587 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=23.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 06:16:04.722 [debug] QUERY OK source="media_items" db=90.1ms queue=0.1ms idle=23.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "986e2919-3f90-48bb-809e-5085bdcb9e0d", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 06:16:04.724 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=156.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.725 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=141.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 06:16:04.774 [debug] QUERY OK source="media_items" db=25.0ms idle=140.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "209acad9-40c5-4924-8b4c-19edb118a688", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 06:16:04.778 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=189.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.780 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=99.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 06:16:04.931 [debug] QUERY OK source="media_items" db=150.2ms idle=56.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "72b50788-f4ca-473d-938a-e862ac6fdce3", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 06:16:04.932 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=206.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:04.935 [debug] QUERY OK source="media_items" db=0.6ms queue=0.2ms idle=182.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 06:16:04.996 [debug] QUERY OK source="media_items" db=38.7ms idle=157.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "1cb81d8e-3faa-43bc-8fd5-ffce776619dc", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 06:16:04Z], ~U[2026-03-11 06:16:04Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 06:16:05.020 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=239.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:05.041 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=108.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 06:16:05.181 [debug] QUERY OK source="media_items" db=138.5ms idle=109.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "5027078a-d0cc-4def-a788-712a9cb38952", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 06:16:05Z], ~U[2026-03-11 06:16:05Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 06:16:05.187 [debug] QUERY OK source="sources" db=0.8ms queue=0.3ms idle=250.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:05.190 [debug] QUERY OK source="media_items" db=1.5ms queue=0.6ms idle=213.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 06:16:05.413 [debug] QUERY OK source="media_items" db=221.1ms idle=169.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "eece7272-9002-4528-bdaf-cbb030defd5e", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 06:16:05Z], ~U[2026-03-11 06:16:05Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 06:16:05.414 [info] {"source":"oban","duration":3235,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:16:05.415 [debug] QUERY OK source="sources" db=0.5ms idle=233.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:05.417 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=229.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 06:16:05.452 [debug] QUERY OK source="media_items" db=33.1ms idle=228.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "c9511fdd-27ba-4d8b-83bf-b6249670e8b1", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 06:16:05Z], ~U[2026-03-11 06:16:05Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 06:16:05.489 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=74.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:16:05.491 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=74.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 06:16:05.670 [debug] QUERY OK source="media_items" db=175.3ms decode=1.2ms queue=0.1ms idle=75.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "9a2136fd-2800-4a17-922f-e439faf40569", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 06:16:05Z], ~U[2026-03-11 06:16:05Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 06:16:05.785 [debug] QUERY OK source="sources" db=21.9ms idle=330.5ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 06:16:05Z], ~U[2026-03-11 06:16:05Z], 1] 06:16:05.827 [debug] QUERY OK source="media_items" db=19.8ms queue=0.3ms idle=355.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")))) [1] 06:16:05.855 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=365.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")))) [1] 06:16:05.858 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=366.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 06:16:06.303 [debug] QUERY OK source="tasks" db=8.7ms idle=467.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3232, 1, ~U[2026-03-11 06:16:06Z], ~U[2026-03-11 06:16:06Z]] 06:16:06.374 [info] {"args":{"id":1},"id":3231,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":99035700,"event":"job:stop","queue_time":797660,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:16:35.416 [info] {"source":"oban","duration":1646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:16:46.936 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:17:00.955 [info] {"source":"oban","duration":2124,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:17:05.419 [info] {"source":"oban","duration":1836,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:17:35.443 [info] {"source":"oban","duration":22502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:18:00.958 [info] {"source":"oban","duration":396,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:18:05.445 [info] {"source":"oban","duration":1851,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:18:35.448 [info] {"source":"oban","duration":1398,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:19:00.959 [info] {"source":"oban","duration":461,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:19:05.450 [info] {"source":"oban","duration":1618,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:19:35.453 [info] {"source":"oban","duration":1875,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:20:00.962 [info] {"source":"oban","duration":1145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:20:05.457 [info] {"source":"oban","duration":1984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:20:35.545 [info] {"source":"oban","duration":2136,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:21:00.963 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:21:05.548 [info] {"source":"oban","duration":2743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:21:35.551 [info] {"source":"oban","duration":1564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:21:46.970 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:22:00.965 [info] {"source":"oban","duration":1103,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:22:05.554 [info] {"source":"oban","duration":1510,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:22:35.558 [info] {"source":"oban","duration":2756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:23:00.966 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:23:05.561 [info] {"source":"oban","duration":1641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:23:35.564 [info] {"source":"oban","duration":1625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:24:00.967 [info] {"source":"oban","duration":477,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:24:05.568 [info] {"source":"oban","duration":2167,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:24:35.570 [info] {"source":"oban","duration":1774,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:25:00.970 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:25:05.574 [info] {"source":"oban","duration":1770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:25:35.577 [info] {"source":"oban","duration":2241,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:26:00.971 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:26:05.580 [info] {"source":"oban","duration":2237,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:26:35.583 [info] {"source":"oban","duration":1477,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:27:00.973 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:27:05.587 [info] {"source":"oban","duration":2484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:27:35.589 [info] {"source":"oban","duration":1801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:28:00.975 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:28:05.593 [info] {"source":"oban","duration":2034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:28:35.596 [info] {"source":"oban","duration":2126,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:28:47.022 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:29:00.977 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:29:05.598 [info] {"source":"oban","duration":1665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:29:35.602 [info] {"source":"oban","duration":2024,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:30:00.979 [info] {"source":"oban","duration":388,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:30:05.604 [info] {"source":"oban","duration":1706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:30:35.607 [info] {"source":"oban","duration":1554,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:31:00.981 [info] {"source":"oban","duration":332,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:31:05.611 [info] {"source":"oban","duration":2673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:31:35.615 [info] {"source":"oban","duration":2171,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:31:47.043 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:32:01.016 [info] {"source":"oban","duration":315,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:32:05.617 [info] {"source":"oban","duration":1707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:32:35.621 [info] {"source":"oban","duration":1994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:33:00.017 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:33:05.623 [info] {"source":"oban","duration":1531,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:33:35.628 [info] {"source":"oban","duration":3079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:34:00.019 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:34:05.630 [info] {"source":"oban","duration":1661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:34:35.634 [info] {"source":"oban","duration":2151,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:35:00.021 [info] {"source":"oban","duration":448,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:35:05.636 [info] {"source":"oban","duration":1670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:35:35.639 [info] {"source":"oban","duration":1624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:36:00.023 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:36:05.642 [info] {"source":"oban","duration":1326,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:36:35.644 [info] {"source":"oban","duration":1756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:37:00.025 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:37:05.706 [info] {"source":"oban","duration":60083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 06:37:35.710 [info] {"source":"oban","duration":3153,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:38:00.027 [info] {"source":"oban","duration":509,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:38:05.713 [info] {"source":"oban","duration":2575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:38:35.716 [info] {"source":"oban","duration":1777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:38:47.091 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:39:00.030 [info] {"source":"oban","duration":635,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:39:05.719 [info] {"source":"oban","duration":1543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:39:35.722 [info] {"source":"oban","duration":1960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:40:00.031 [info] {"source":"oban","duration":395,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:40:05.725 [info] {"source":"oban","duration":2067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:40:35.728 [info] {"source":"oban","duration":1965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:41:00.034 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:41:05.732 [info] {"source":"oban","duration":3548,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:41:35.736 [info] {"source":"oban","duration":2070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:41:47.122 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:42:00.035 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:42:05.739 [info] {"source":"oban","duration":2069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:42:35.741 [info] {"source":"oban","duration":1560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:43:00.037 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:43:05.743 [info] {"source":"oban","duration":1882,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:43:35.747 [info] {"source":"oban","duration":2106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:44:00.040 [info] {"source":"oban","duration":768,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:44:05.750 [info] {"source":"oban","duration":1933,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:44:36.094 [info] {"source":"oban","duration":343543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:45:00.041 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:45:06.098 [info] {"source":"oban","duration":2558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:45:36.101 [info] {"source":"oban","duration":1733,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:46:00.043 [info] {"source":"oban","duration":570,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:46:06.104 [info] {"source":"oban","duration":1615,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:46:06.833 [info] {"args":{"id":1},"id":3232,"meta":{},"system_time":1773211566831898998,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:46:06.839 [debug] QUERY OK source="sources" db=4.2ms queue=0.4ms idle=888.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:06.871 [debug] QUERY OK source="settings" db=29.8ms queue=0.6ms idle=894.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:46:07.080 [debug] QUERY OK source="media_items" db=207.5ms idle=768.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")))) [1] 06:46:07.130 [debug] QUERY OK source="media_items" db=48.4ms queue=0.1ms idle=282.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 06:46:07.132 [debug] QUERY OK source="media_profiles" db=1.4ms idle=299.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:07.154 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=313.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:46:07.278 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 06:46:07.281 [debug] Current batch of media processed. Will check again in 1000ms 06:46:07.283 [debug] QUERY OK source="settings" db=3.6ms queue=0.3ms idle=408.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:46:07.285 [debug] QUERY OK source="settings" db=0.7ms queue=0.4ms idle=203.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:46:07.286 [debug] QUERY OK source="settings" db=1.2ms idle=155.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 06:46:07.288 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/49/c2/49c2c71dac8244fc992c3fc508626dda13f200701c53223382563d62e415af27.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 06:46:08.283 [debug] Current batch of media processed. Will check again in 1000ms 06:46:09.284 [debug] Current batch of media processed. Will check again in 1000ms 06:46:10.285 [debug] Current batch of media processed. Will check again in 1000ms 06:46:11.286 [debug] Current batch of media processed. Will check again in 1000ms 06:46:12.287 [debug] Current batch of media processed. Will check again in 1000ms 06:46:13.288 [debug] Current batch of media processed. Will check again in 1000ms 06:46:14.289 [debug] Current batch of media processed. Will check again in 1000ms 06:46:15.291 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 06:46:15.295 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=454.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:15.297 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=350.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:15.400 [debug] QUERY OK source="media_items" db=101.8ms idle=352.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 06:46:15.455 [debug] QUERY OK source="media_items" db=52.7ms queue=0.1ms idle=456.5ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "57e01fb9-1442-4a19-a02b-409c4eab6c47", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 06:46:15Z], ~U[2026-03-11 06:46:15Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 06:46:15.457 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=510.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:15.459 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=163.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:15.461 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=162.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 [37332] 06:46:15.461 [debug] Current batch of media processed. Will check again in 1000ms 06:46:16.462 [debug] Current batch of media processed. Will check again in 1000ms 06:46:17.463 [debug] Current batch of media processed. Will check again in 1000ms 06:46:18.464 [debug] Current batch of media processed. Will check again in 1000ms 06:46:19.465 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 06:46:19.467 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=613.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:19.469 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=521.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:19.687 [debug] QUERY OK source="media_items" db=217.7ms idle=522.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 06:46:19.832 [debug] QUERY OK source="media_items" db=142.6ms idle=741.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "1853874c-b6d1-4a10-b8b9-e2172005f1a7", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 06:46:19Z], ~U[2026-03-11 06:46:19Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 06:46:19.836 [debug] QUERY OK source="sources" db=2.8ms queue=0.3ms idle=886.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:19.839 [debug] QUERY OK source="media_profiles" db=0.9ms queue=1.8ms idle=369.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:19.842 [debug] QUERY OK source="media_items" db=2.0ms idle=371.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 [36910] 06:46:19.844 [debug] Current batch of media processed. Will check again in 1000ms 06:46:20.845 [debug] Current batch of media processed. Will check again in 1000ms 06:46:21.850 [debug] Current batch of media processed. Will check again in 1000ms 06:46:22.852 [debug] Current batch of media processed. Will check again in 1000ms 06:46:23.854 [debug] Current batch of media processed. Will check again in 1000ms 06:46:24.884 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 06:46:24.936 [debug] QUERY OK source="sources" db=2.4ms queue=0.1ms idle=1986.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:24.939 [debug] QUERY OK source="sources" db=2.5ms idle=1989.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:24.941 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=1992.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 06:46:24.966 [debug] QUERY OK source="media_items" db=23.5ms idle=1060.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "3440f6b5-e5e3-40b0-afe5-46bcf484e19b", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 06:46:24Z], ~U[2026-03-11 06:46:24Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 06:46:24.973 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=36.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:24.980 [debug] QUERY OK source="media_profiles" db=5.5ms queue=0.2ms idle=38.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:24.984 [debug] QUERY OK source="media_items" db=1.7ms idle=43.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 [36578] 06:46:24.987 [debug] Current batch of media processed. Will check again in 1000ms 06:46:25.989 [debug] Current batch of media processed. Will check again in 1000ms 06:46:26.990 [debug] Current batch of media processed. Will check again in 1000ms 06:46:27.991 [debug] Current batch of media processed. Will check again in 1000ms 06:46:28.996 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 06:46:29.002 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1051.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:29.004 [debug] QUERY OK source="sources" db=0.9ms queue=0.8ms 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" = ?) [1] 06:46:29.006 [debug] QUERY OK source="media_items" db=0.9ms queue=0.7ms idle=57.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 06:46:29.031 [debug] QUERY OK source="media_items" db=20.0ms queue=0.1ms idle=60.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "8514884f-9f1e-481d-9415-b22d1ab2b77a", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 06:46:29Z], ~U[2026-03-11 06:46:29Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 06:46:29.034 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=81.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:29.036 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.6ms idle=33.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:29.040 [debug] QUERY OK source="media_items" db=1.1ms queue=0.8ms idle=34.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 [36579] 06:46:29.041 [debug] Current batch of media processed. Will check again in 1000ms 06:46:30.042 [debug] Current batch of media processed. Will check again in 1000ms 06:46:31.043 [debug] Current batch of media processed. Will check again in 1000ms 06:46:32.048 [debug] Current batch of media processed. Will check again in 1000ms 06:46:33.050 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 06:46:33.052 [debug] QUERY OK source="sources" db=1.2ms 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" IN (?)) [1] 06:46:33.053 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=69.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:33.055 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=70.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 06:46:33.075 [debug] QUERY OK source="media_items" db=19.1ms idle=71.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "b5d538f8-d7f9-454e-87fa-e0fa18a5d1f6", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 06:46:33Z], ~U[2026-03-11 06:46:33Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 06:46:33.077 [debug] QUERY OK source="sources" db=0.6ms queue=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" = ?) [1] 06:46:33.078 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=24.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:33.079 [debug] QUERY OK source="media_items" db=0.9ms idle=25.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 [36580] 06:46:33.080 [debug] Current batch of media processed. Will check again in 1000ms 06:46:34.081 [debug] Current batch of media processed. Will check again in 1000ms 06:46:35.082 [debug] Current batch of media processed. Will check again in 1000ms 06:46:36.084 [debug] Current batch of media processed. Will check again in 1000ms 06:46:36.483 [info] {"source":"oban","duration":376377,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:46:37.085 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 06:46:37.090 [debug] QUERY OK source="sources" db=0.9ms idle=606.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:37.091 [debug] QUERY OK source="sources" db=0.5ms idle=143.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:37.093 [debug] QUERY OK source="media_items" db=0.7ms idle=144.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 06:46:37.149 [debug] QUERY OK source="media_items" db=55.0ms idle=145.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "0bcd10f0-063e-454a-822d-e49df8c9637e", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 06:46:37Z], ~U[2026-03-11 06:46:37Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 06:46:37.150 [debug] QUERY OK source="sources" db=0.4ms queue=0.3ms idle=137.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:37.151 [debug] QUERY OK source="media_profiles" db=0.6ms idle=60.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:37.153 [debug] QUERY OK source="media_items" db=0.5ms idle=60.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 [36581] 06:46:37.153 [debug] Current batch of media processed. Will check again in 1000ms 06:46:38.154 [debug] Current batch of media processed. Will check again in 1000ms 06:46:39.155 [debug] Current batch of media processed. Will check again in 1000ms 06:46:40.157 [debug] Current batch of media processed. Will check again in 1000ms 06:46:41.158 [debug] Current batch of media processed. Will check again in 1000ms 06:46:42.159 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 06:46:42.161 [debug] QUERY OK source="sources" db=1.0ms idle=1211.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:42.164 [debug] QUERY OK source="sources" db=1.5ms idle=1213.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:42.166 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=1215.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 06:46:42.224 [debug] QUERY OK source="media_items" db=57.2ms queue=0.1ms idle=1143.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "ef3bef6e-e158-4527-a581-f9296611a603", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 06:46:42Z], ~U[2026-03-11 06:46:42Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 06:46:42.255 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=227.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:42.257 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.4ms idle=94.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:42.259 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=93.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 [36582] 06:46:42.260 [debug] Current batch of media processed. Will check again in 1000ms 06:46:43.261 [debug] Current batch of media processed. Will check again in 1000ms 06:46:44.262 [debug] Current batch of media processed. Will check again in 1000ms 06:46:45.263 [debug] Current batch of media processed. Will check again in 1000ms 06:46:46.264 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 06:46:46.266 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=315.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:46.267 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=317.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:46.269 [debug] QUERY OK source="media_items" db=1.0ms idle=319.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 06:46:46.362 [debug] QUERY OK source="media_items" db=92.4ms idle=320.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "a86b8367-5a39-4dae-bb56-7b1469165c8d", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 06:46:46Z], ~U[2026-03-11 06:46:46Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 06:46:46.365 [debug] QUERY OK source="sources" db=1.2ms queue=0.8ms idle=321.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:46.367 [debug] QUERY OK source="media_profiles" db=2.0ms idle=99.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:46.371 [debug] QUERY OK source="media_items" db=3.2ms idle=100.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 [36583] 06:46:46.374 [debug] Current batch of media processed. Will check again in 1000ms 06:46:47.164 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:46:47.375 [debug] Current batch of media processed. Will check again in 1000ms 06:46:48.376 [debug] Current batch of media processed. Will check again in 1000ms 06:46:49.432 [debug] Current batch of media processed. Will check again in 1000ms 06:46:50.433 [debug] Current batch of media processed. Will check again in 1000ms 06:46:51.435 [debug] Current batch of media processed. Will check again in 1000ms 06:46:52.436 [debug] Current batch of media processed. Will check again in 1000ms 06:46:53.437 [debug] Current batch of media processed. Will check again in 1000ms 06:46:54.438 [debug] Current batch of media processed. Will check again in 1000ms 06:46:55.439 [debug] Current batch of media processed. Will check again in 1000ms 06:46:56.441 [debug] Current batch of media processed. Will check again in 1000ms 06:46:57.443 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 06:46:57.449 [debug] QUERY OK source="sources" db=5.1ms queue=0.1ms idle=1488.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:46:57.456 [debug] QUERY OK source="sources" db=3.5ms queue=3.0ms idle=1494.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:57.682 [debug] QUERY OK source="media_items" db=222.3ms queue=0.3ms idle=1504.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 06:46:57.730 [debug] QUERY OK source="media_items" db=46.5ms idle=1243.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "86741f51-079c-4a4a-b888-a9547753bb97", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 06:46:57Z], ~U[2026-03-11 06:46:57Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 06:46:57.733 [debug] QUERY OK source="sources" db=2.2ms queue=0.3ms idle=282.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:46:57.737 [debug] QUERY OK source="media_profiles" db=1.8ms queue=1.0ms idle=279.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:46:57.738 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=281.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 [36439] 06:46:57.739 [debug] Current batch of media processed. Will check again in 1000ms 06:46:58.933 [debug] Current batch of media processed. Will check again in 1000ms 06:46:59.937 [debug] Current batch of media processed. Will check again in 1000ms 06:47:00.184 [info] {"source":"oban","duration":472,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:47:00.938 [debug] Current batch of media processed. Will check again in 1000ms 06:47:01.939 [debug] Current batch of media processed. Will check again in 1000ms 06:47:02.940 [debug] Current batch of media processed. Will check again in 1000ms 06:47:03.942 [debug] Current batch of media processed. Will check again in 1000ms 06:47:04.946 [debug] Current batch of media processed. Will check again in 1000ms 06:47:06.185 [debug] Current batch of media processed. Will check again in 1000ms 06:47:06.694 [info] {"source":"oban","duration":8863,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:47:07.188 [debug] Current batch of media processed. Will check again in 1000ms 06:47:08.190 [debug] Current batch of media processed. Will check again in 1000ms 06:47:09.192 [debug] Current batch of media processed. Will check again in 1000ms 06:47:10.196 [debug] Current batch of media processed. Will check again in 1000ms 06:47:11.198 [debug] Current batch of media processed. Will check again in 1000ms 06:47:12.199 [debug] Current batch of media processed. Will check again in 1000ms 06:47:13.200 [debug] Current batch of media processed. Will check again in 1000ms 06:47:14.201 [debug] Current batch of media processed. Will check again in 1000ms 06:47:15.203 [debug] Current batch of media processed. Will check again in 1000ms 06:47:16.205 [debug] Current batch of media processed. Will check again in 1000ms 06:47:17.209 [debug] Current batch of media processed. Will check again in 1000ms 06:47:18.432 [debug] Current batch of media processed. Will check again in 1000ms 06:47:19.434 [debug] Current batch of media processed. Will check again in 1000ms 06:47:20.435 [debug] Current batch of media processed. Will check again in 1000ms 06:47:21.436 [debug] Current batch of media processed. Will check again in 1000ms 06:47:22.437 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 06:47:22.441 [debug] QUERY OK source="sources" db=1.8ms queue=1.4ms idle=1001.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:47:22.449 [debug] QUERY OK source="sources" db=3.1ms queue=0.2ms 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" = ?) [1] 06:47:22.464 [debug] QUERY OK source="media_items" db=10.8ms queue=1.4ms idle=491.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 06:47:22.958 [debug] QUERY OK source="media_items" db=272.9ms queue=0.2ms idle=245.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "f769247f-58a4-427d-8fc7-72aa30b79fda", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 06:47:22Z], ~U[2026-03-11 06:47:22Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 06:47:22.961 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=521.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:23.198 [debug] QUERY OK source="media_profiles" db=4.3ms queue=231.3ms idle=513.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 06:47:23.203 [debug] QUERY OK source="media_items" db=2.4ms queue=0.2ms idle=737.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 [36333] 06:47:23.203 [debug] Current batch of media processed. Will check again in 1000ms 06:47:24.204 [debug] Current batch of media processed. Will check again in 1000ms 06:47:24.241 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/49/c2/49c2c71dac8244fc992c3fc508626dda13f200701c53223382563d62e415af27.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 06:47:24.456 [debug] Gracefully stopping file follower 06:47:24.457 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=250.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 06:47:24.459 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=21.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:24.461 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=22.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 06:47:24.477 [debug] QUERY OK source="media_items" db=15.6ms idle=24.7ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "17d71ba2-8216-4d09-bf48-ae78d4cb621f", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 06:47:24Z], ~U[2026-03-11 06:47:24Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 06:47:24.479 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=41.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:24.480 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=22.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 06:47:24.700 [debug] QUERY OK source="media_items" db=218.0ms idle=21.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "fa0303a3-bd14-4cb3-8564-a1cb3213efca", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 06:47:24Z], ~U[2026-03-11 06:47:24Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 06:47:24.701 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=239.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:24.703 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=224.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 06:47:24.793 [debug] QUERY OK source="media_items" db=88.2ms idle=224.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "34e7ff6c-50a3-4099-b9b4-1a5b341b2b42", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 06:47:24Z], ~U[2026-03-11 06:47:24Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 06:47:24.819 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=336.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:24.820 [debug] QUERY OK source="media_items" db=1.1ms idle=119.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 06:47:24.990 [debug] QUERY OK source="media_items" db=168.4ms idle=119.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "65b3041a-95df-46ee-9956-dc58f9b13077", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 06:47:24Z], ~U[2026-03-11 06:47:24Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 06:47:24.992 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=287.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:24.994 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=200.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 06:47:25.034 [debug] QUERY OK source="media_items" db=38.3ms idle=176.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "9d26f1a0-c21d-4365-8e13-133646156c87", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 06:47:24Z], ~U[2026-03-11 06:47:24Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 06:47:25.182 [debug] QUERY OK source="sources" db=148.1ms queue=0.1ms idle=213.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:25.184 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=193.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 06:47:25.236 [debug] QUERY OK source="media_items" db=50.1ms idle=193.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "4a93d5b4-4dce-4387-9abf-43ce29950674", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 06:47:25.237 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=203.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:25.238 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=55.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 06:47:25.276 [debug] QUERY OK source="media_items" db=36.0ms queue=0.3ms idle=55.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "57cb277c-4242-4f7c-b183-774010070327", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 06:47:25.434 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=224.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:25.438 [debug] QUERY OK source="media_items" db=0.8ms queue=2.8ms idle=198.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 06:47:25.686 [debug] QUERY OK source="media_items" db=244.5ms idle=203.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "5691c1db-9db8-4478-853a-a61335a716d7", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 06:47:25.687 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=447.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:25.691 [debug] QUERY OK source="media_items" db=3.4ms idle=412.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 06:47:25.730 [debug] QUERY OK source="media_items" db=37.3ms queue=0.1ms idle=258.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "0efef7e8-0a33-44f4-9ed2-78b26ba65453", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 06:47:25.736 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=295.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 06:47:25.740 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=54.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 06:47:25.974 [debug] QUERY OK source="media_items" db=232.0ms idle=53.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "73426032-7a61-4120-b8e3-6b80728c4cc5", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 06:47:26.008 [debug] QUERY OK source="sources" db=33.3ms queue=0.2ms idle=283.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 06:47:25Z], ~U[2026-03-11 06:47:25Z], 1] 06:47:26.017 [debug] QUERY OK source="media_items" db=1.4ms decode=4.5ms queue=0.2ms idle=281.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")))) [1] 06:47:26.183 [debug] QUERY OK source="media_items" db=127.4ms queue=0.1ms idle=320.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")))) [1] 06:47:26.216 [debug] QUERY OK source="media_items" db=32.7ms queue=0.6ms idle=442.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 06:47:26.500 [debug] QUERY OK source="tasks" db=65.3ms queue=0.1ms idle=252.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3233, 1, ~U[2026-03-11 06:47:26Z], ~U[2026-03-11 06:47:26Z]] 06:47:26.506 [info] {"args":{"id":1},"id":3232,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":79669418,"event":"job:stop","queue_time":712324,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 06:47:36.698 [info] {"source":"oban","duration":2014,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:48:00.187 [info] {"source":"oban","duration":768,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:48:06.722 [info] {"source":"oban","duration":1502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:48:36.725 [info] {"source":"oban","duration":1765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:49:00.188 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:49:06.728 [info] {"source":"oban","duration":1707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:49:36.732 [info] {"source":"oban","duration":2762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:50:00.190 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:50:06.736 [info] {"source":"oban","duration":1826,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:50:36.739 [info] {"source":"oban","duration":1983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:51:00.192 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:51:06.745 [info] {"source":"oban","duration":5469,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:51:36.748 [info] {"source":"oban","duration":1457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:51:47.205 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 06:52:00.212 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:52:06.751 [info] {"source":"oban","duration":1765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:52:36.803 [info] {"source":"oban","duration":1996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:53:00.237 [info] {"source":"oban","duration":20623,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:53:06.806 [info] {"source":"oban","duration":2100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:53:36.808 [info] {"source":"oban","duration":1812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:54:00.240 [info] {"source":"oban","duration":789,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:54:06.811 [info] {"source":"oban","duration":1712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:54:36.815 [info] {"source":"oban","duration":1953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:55:00.242 [info] {"source":"oban","duration":873,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:55:06.818 [info] {"source":"oban","duration":2090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:55:36.820 [info] {"source":"oban","duration":1594,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:56:00.245 [info] {"source":"oban","duration":1551,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:56:06.823 [info] {"source":"oban","duration":1723,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:56:36.828 [info] {"source":"oban","duration":2838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:57:00.247 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:57:06.831 [info] {"source":"oban","duration":1982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:57:36.834 [info] {"source":"oban","duration":2106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:58:00.249 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:58:06.836 [info] {"source":"oban","duration":1395,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:58:36.840 [info] {"source":"oban","duration":1993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:58:47.264 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 06:59:00.251 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 06:59:06.842 [info] {"source":"oban","duration":1790,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 06:59:36.848 [info] {"source":"oban","duration":3787,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:00:00.254 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:00:06.851 [info] {"source":"oban","duration":1755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:00:36.854 [info] {"source":"oban","duration":1756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:01:00.256 [info] {"source":"oban","duration":898,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:01:06.860 [info] {"source":"oban","duration":4384,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:01:36.864 [info] {"source":"oban","duration":2129,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:01:47.285 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:02:00.257 [info] {"source":"oban","duration":871,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:02:06.870 [info] {"source":"oban","duration":3837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:02:36.873 [info] {"source":"oban","duration":2146,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:03:00.259 [info] {"source":"oban","duration":579,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:03:06.876 [info] {"source":"oban","duration":2467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:03:36.879 [info] {"source":"oban","duration":1504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:04:00.262 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:04:06.883 [info] {"source":"oban","duration":2417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:04:36.886 [info] {"source":"oban","duration":1496,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:05:00.263 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:05:06.889 [info] {"source":"oban","duration":2051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:05:36.891 [info] {"source":"oban","duration":1504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:06:00.265 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:06:06.895 [info] {"source":"oban","duration":2028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:06:36.898 [info] {"source":"oban","duration":1855,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:07:00.266 [info] {"source":"oban","duration":458,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:07:06.900 [info] {"source":"oban","duration":1732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:07:36.904 [info] {"source":"oban","duration":1947,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:08:00.268 [info] {"source":"oban","duration":801,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:08:06.907 [info] {"source":"oban","duration":2076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:08:36.909 [info] {"source":"oban","duration":1279,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:09:00.269 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:09:06.911 [info] {"source":"oban","duration":1766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:09:36.986 [info] {"source":"oban","duration":73310,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 07:09:47.341 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 07:10:00.271 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:10:06.989 [info] {"source":"oban","duration":2270,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:10:36.993 [info] {"source":"oban","duration":2296,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:11:00.273 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:11:06.995 [info] {"source":"oban","duration":1679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:11:36.999 [info] {"source":"oban","duration":2755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:11:47.357 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:12:00.275 [info] {"source":"oban","duration":512,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:12:07.003 [info] {"source":"oban","duration":2301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:12:37.006 [info] {"source":"oban","duration":2657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:13:00.277 [info] {"source":"oban","duration":446,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:13:07.010 [info] {"source":"oban","duration":1997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:13:37.012 [info] {"source":"oban","duration":1404,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:14:00.280 [info] {"source":"oban","duration":1210,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:14:07.015 [info] {"source":"oban","duration":1578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:14:37.018 [info] {"source":"oban","duration":1568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:15:00.283 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:15:07.020 [info] {"source":"oban","duration":1425,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:15:37.024 [info] {"source":"oban","duration":2136,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:16:00.285 [info] {"source":"oban","duration":371,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:16:07.026 [info] {"source":"oban","duration":1712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:16:37.030 [info] {"source":"oban","duration":2114,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:17:00.287 [info] {"source":"oban","duration":450,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:17:07.033 [info] {"source":"oban","duration":2491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:17:26.519 [info] {"args":{"id":1},"id":3233,"meta":{},"system_time":1773213446518270856,"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"]} 07:17:26.522 [debug] QUERY OK source="sources" db=0.8ms idle=1829.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:26.525 [debug] QUERY OK source="settings" db=1.7ms queue=0.2ms idle=1107.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:17:26.528 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=835.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")))) [1] 07:17:26.530 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=59.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 07:17:26.532 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=45.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] 07:17:26.549 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=27.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:17:26.610 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 07:17:26.643 [debug] Current batch of media processed. Will check again in 1000ms 07:17:26.644 [debug] QUERY OK source="settings" db=32.7ms queue=0.4ms idle=85.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:17:26.645 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=115.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:17:26.646 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=115.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:17:26.647 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/db/ec/dbecb9355290cc0cfcec2674fb9e6cfdc328d3a44e3553f8461620d922020a20.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 07:17:27.645 [debug] Current batch of media processed. Will check again in 1000ms 07:17:28.646 [debug] Current batch of media processed. Will check again in 1000ms 07:17:29.647 [debug] Current batch of media processed. Will check again in 1000ms 07:17:30.648 [debug] Current batch of media processed. Will check again in 1000ms 07:17:31.655 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 07:17:31.704 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=221.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:31.706 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=14.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:31.708 [debug] QUERY OK source="media_items" db=0.8ms idle=16.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 07:17:31.743 [debug] QUERY OK source="media_items" db=19.7ms idle=32.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "43deb6c0-5c6a-4d1e-8701-30b19ec56100", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 07:17:31Z], ~U[2026-03-11 07:17:31Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 07:17:31.746 [debug] QUERY OK source="sources" db=1.8ms idle=53.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:31.747 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=42.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] 07:17:31.749 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=41.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 [37332] 07:17:31.749 [debug] Current batch of media processed. Will check again in 1000ms 07:17:32.752 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", "id" => "tHL82zmafoM", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 07:17:32.753 [debug] QUERY OK source="sources" db=0.6ms idle=1009.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:32.754 [debug] QUERY OK source="sources" db=0.5ms idle=1007.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:32.755 [debug] QUERY OK source="media_items" db=0.5ms queue=0.2ms idle=1007.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:32.800 [debug] QUERY OK source="media_items" db=26.1ms idle=1006.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "bf04519b-853e-4c94-91ce-569a444ca540", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:32Z], ~U[2026-03-11 07:17:32Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:32.801 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=315.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:32.803 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=48.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] 07:17:32.804 [debug] QUERY OK source="media_items" db=0.6ms idle=49.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 [36910] 07:17:32.804 [debug] Current batch of media processed. Will check again in 1000ms 07:17:33.806 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "9itQHfB7DOU", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 07:17:33.809 [debug] QUERY OK source="sources" db=1.3ms queue=0.6ms idle=1025.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:33.815 [debug] QUERY OK source="sources" db=4.7ms queue=0.1ms idle=1008.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:33.819 [debug] QUERY OK source="media_items" db=2.9ms queue=0.1ms idle=1012.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:34.279 [debug] QUERY OK source="media_items" db=458.7ms idle=1015.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "1ff296af-05bc-43e1-8a33-ebb9ec9067bc", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:33Z], ~U[2026-03-11 07:17:33Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:34.282 [debug] QUERY OK source="sources" db=1.2ms queue=0.3ms idle=794.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:34.283 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=473.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] 07:17:34.284 [debug] QUERY OK source="media_items" db=0.6ms idle=468.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 [36578] 07:17:34.285 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "776wd4rgME8", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 07:17:34.287 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=466.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:34.288 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:34.289 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:34.320 [debug] QUERY OK source="media_items" db=30.3ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "0332e1fc-b7c6-4854-b203-a23bb3b90c9f", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:34Z], ~U[2026-03-11 07:17:34Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:34.322 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=36.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:34.323 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=35.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] 07:17:34.324 [debug] QUERY OK source="media_items" db=0.9ms idle=35.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 [36579] 07:17:34.325 [debug] Current batch of media processed. Will check again in 1000ms 07:17:35.326 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", "id" => "pdsPOqKjcr4", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 07:17:35.328 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1007.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:35.330 [debug] QUERY OK source="sources" db=1.1ms idle=1007.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:35.331 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1007.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 07:17:35.360 [debug] QUERY OK source="media_items" db=27.6ms idle=1007.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "564fb5b4-47f9-4658-8589-37fc44cd2a7d", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 07:17:35Z], ~U[2026-03-11 07:17:35Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 07:17:35.364 [debug] QUERY OK source="sources" db=0.5ms queue=0.6ms idle=874.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:35.365 [debug] QUERY OK source="media_profiles" db=0.6ms idle=36.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] 07:17:35.366 [debug] QUERY OK source="media_items" db=0.4ms idle=36.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 [36580] 07:17:35.368 [debug] Current batch of media processed. Will check again in 1000ms 07:17:36.369 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", "id" => "svv5O1pBDuI", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 07:17:36.371 [debug] QUERY OK source="sources" db=0.4ms idle=1011.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:36.373 [debug] QUERY OK source="sources" db=0.4ms idle=1008.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:36.374 [debug] QUERY OK source="media_items" db=0.6ms idle=1007.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:36.432 [debug] QUERY OK source="media_items" db=54.2ms idle=1008.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "0b275aeb-300b-4932-b6cf-5fab54bfd516", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:36Z], ~U[2026-03-11 07:17:36Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:36.480 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=988.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:36.481 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.3ms idle=108.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] 07:17:36.485 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=111.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 [36581] 07:17:36.486 [debug] Current batch of media processed. Will check again in 1000ms 07:17:37.037 [info] {"source":"oban","duration":2078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:17:37.513 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", "id" => "PBciEuxYu9Y", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 07:17:37.544 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1062.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:37.547 [debug] QUERY OK source="sources" db=1.6ms idle=1059.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:37.548 [debug] QUERY OK source="media_items" db=0.9ms idle=1050.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:37.570 [debug] QUERY OK source="media_items" db=20.1ms idle=512.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "ca44f190-fedc-4c9a-b816-5e54fc5fd9de", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:37Z], ~U[2026-03-11 07:17:37Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:37.572 [debug] QUERY OK source="sources" db=0.5ms queue=0.5ms 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" = ?) [1] 07:17:37.574 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=28.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:17:37.575 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=27.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 [36582] 07:17:37.576 [debug] Current batch of media processed. Will check again in 1000ms 07:17:38.577 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", "id" => "TJek4wUSGEA", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 07:17:38.581 [debug] QUERY OK source="sources" db=1.5ms queue=0.4ms idle=1009.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:38.585 [debug] QUERY OK source="sources" db=1.9ms queue=1.8ms idle=1009.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:38.590 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=1011.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:38.616 [debug] QUERY OK source="media_items" db=23.0ms queue=0.1ms idle=1015.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "e7f009d0-fc28-4700-ba94-e89338089696", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:38Z], ~U[2026-03-11 07:17:38Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:38.618 [debug] QUERY OK source="sources" db=1.1ms queue=0.6ms idle=113.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:38.620 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=38.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] 07:17:38.623 [debug] QUERY OK source="media_items" db=1.3ms idle=35.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 [36583] 07:17:38.623 [debug] Current batch of media processed. Will check again in 1000ms 07:17:39.624 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", "id" => "06w596oNzAw", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 07:17:39.626 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1011.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:39.627 [debug] QUERY OK source="sources" db=0.5ms queue=0.5ms idle=1007.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:39.629 [debug] QUERY OK source="media_items" db=1.6ms idle=1007.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:39.652 [debug] QUERY OK source="media_items" db=21.1ms idle=1007.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "b340508c-45a2-44d9-9568-7fe4ed4020c1", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:39Z], ~U[2026-03-11 07:17:39Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:39.654 [debug] QUERY OK source="sources" db=1.7ms idle=147.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:39.656 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=29.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] 07:17:39.658 [debug] QUERY OK source="media_items" db=1.6ms idle=29.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 [36439] 07:17:39.658 [debug] Current batch of media processed. Will check again in 1000ms 07:17:40.090 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/db/ec/dbecb9355290cc0cfcec2674fb9e6cfdc328d3a44e3553f8461620d922020a20.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 07:17:40.125 [debug] Gracefully stopping file follower 07:17:40.126 [debug] QUERY OK source="sources" db=1.2ms queue=0.6ms idle=495.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:17:40.128 [debug] QUERY OK source="sources" db=0.7ms idle=476.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.129 [debug] QUERY OK source="media_items" db=0.5ms queue=0.2ms idle=474.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 07:17:40.144 [debug] QUERY OK source="media_items" db=13.9ms idle=474.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "817c55af-c31d-4d45-a717-288458a7a98f", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 07:17:40.146 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=486.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.147 [debug] QUERY OK source="media_items" db=0.6ms idle=20.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:40.166 [debug] QUERY OK source="media_items" db=17.3ms queue=0.2ms idle=19.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "c018f7e5-08ee-4c10-a2ed-4d5cd25ac580", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:40.167 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.169 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=23.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:40.192 [debug] QUERY OK source="media_items" db=20.8ms idle=23.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "75b05bd7-db33-4c07-a81a-b13bee3cca28", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:40.214 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=66.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.217 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=49.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:40.239 [debug] QUERY OK source="media_items" db=20.3ms queue=0.1ms idle=50.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "7241d621-6fd6-408c-bf2f-f8c9707227ba", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:40.287 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=116.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.288 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=96.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 07:17:40.393 [debug] QUERY OK source="media_items" db=102.2ms idle=74.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "795b5bb7-9082-4a2b-b04f-4d6e065246b1", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 07:17:40.396 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=177.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.397 [debug] QUERY OK source="media_items" db=1.0ms idle=157.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:40.423 [debug] QUERY OK source="media_items" db=24.2ms idle=111.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "1810814f-0e91-48b4-a074-66a0f6c513de", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:40.427 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.429 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=36.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:17:40.447 [debug] QUERY OK source="media_items" db=16.7ms idle=33.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "cc6e7ef5-19ff-4757-bc52-8d8f49e8007b", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:17:40.453 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=54.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.454 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=30.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:40.471 [debug] QUERY OK source="media_items" db=16.1ms queue=0.1ms idle=27.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "f1abfcd1-8bcf-4cbf-ac15-9c198852b53e", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:40.474 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=44.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.475 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=27.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:40.499 [debug] QUERY OK source="media_items" db=22.2ms idle=23.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "6e8d0230-1c88-4469-96dd-0df69825d381", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:40.503 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=47.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:17:40.504 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=32.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:17:40.596 [debug] QUERY OK source="media_items" db=90.2ms queue=0.1ms idle=31.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "2879e44a-a18b-4dce-ae56-4f53f9b92bf1", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", nil, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:17:40.598 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=98.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z], 1] 07:17:40.600 [debug] QUERY OK source="media_items" db=0.8ms idle=96.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")))) [1] 07:17:40.601 [debug] QUERY OK source="media_items" db=1.0ms idle=96.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")))) [1] 07:17:40.632 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=121.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 07:17:40.646 [debug] QUERY OK source="tasks" db=5.9ms idle=39.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3234, 1, ~U[2026-03-11 07:17:40Z], ~U[2026-03-11 07:17:40Z]] 07:17:40.679 [info] {"args":{"id":1},"id":3233,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":14128245,"event":"job:stop","queue_time":227590,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 07:17:47.399 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 07:18:00.290 [info] {"source":"oban","duration":919,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:18:07.039 [info] {"source":"oban","duration":1466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:18:37.042 [info] {"source":"oban","duration":1852,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:19:00.293 [info] {"source":"oban","duration":2189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:19:07.045 [info] {"source":"oban","duration":1676,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:19:37.049 [info] {"source":"oban","duration":2024,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:20:00.295 [info] {"source":"oban","duration":372,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:20:07.052 [info] {"source":"oban","duration":2421,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:20:37.056 [info] {"source":"oban","duration":1900,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:21:00.317 [info] {"source":"oban","duration":539,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:21:07.058 [info] {"source":"oban","duration":1659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:21:37.062 [info] {"source":"oban","duration":2010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:21:47.495 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:22:00.320 [info] {"source":"oban","duration":823,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:22:07.065 [info] {"source":"oban","duration":2514,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:22:37.448 [info] {"source":"oban","duration":381414,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:23:00.321 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:23:07.451 [info] {"source":"oban","duration":2332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:23:37.454 [info] {"source":"oban","duration":2067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:24:00.323 [info] {"source":"oban","duration":519,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:24:07.457 [info] {"source":"oban","duration":1630,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:24:37.460 [info] {"source":"oban","duration":2214,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:25:00.325 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:25:07.463 [info] {"source":"oban","duration":2059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:25:37.466 [info] {"source":"oban","duration":2048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:26:00.326 [info] {"source":"oban","duration":348,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:26:07.468 [info] {"source":"oban","duration":1524,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:26:37.471 [info] {"source":"oban","duration":2062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:27:00.327 [info] {"source":"oban","duration":401,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:27:07.475 [info] {"source":"oban","duration":3159,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:27:37.477 [info] {"source":"oban","duration":1850,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:28:00.329 [info] {"source":"oban","duration":478,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:28:07.480 [info] {"source":"oban","duration":1746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:28:37.483 [info] {"source":"oban","duration":1740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:29:00.331 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:29:07.486 [info] {"source":"oban","duration":1837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:29:37.490 [info] {"source":"oban","duration":1965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:29:47.552 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 07:30:00.334 [info] {"source":"oban","duration":1145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:30:07.493 [info] {"source":"oban","duration":2657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:30:37.496 [info] {"source":"oban","duration":1498,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:31:00.336 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:31:07.502 [info] {"source":"oban","duration":5408,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:31:37.506 [info] {"source":"oban","duration":2330,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:31:47.567 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:32:00.337 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:32:07.509 [info] {"source":"oban","duration":2020,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:32:37.512 [info] {"source":"oban","duration":2142,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:33:00.339 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:33:07.514 [info] {"source":"oban","duration":1430,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:33:37.519 [info] {"source":"oban","duration":2936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:34:00.340 [info] {"source":"oban","duration":490,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:34:07.522 [info] {"source":"oban","duration":2090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:34:37.526 [info] {"source":"oban","duration":3086,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:35:00.342 [info] {"source":"oban","duration":559,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:35:07.529 [info] {"source":"oban","duration":1382,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:35:37.533 [info] {"source":"oban","duration":2557,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:36:00.345 [info] {"source":"oban","duration":928,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:36:07.537 [info] {"source":"oban","duration":1888,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:36:37.539 [info] {"source":"oban","duration":1602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:37:00.346 [info] {"source":"oban","duration":317,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:37:07.543 [info] {"source":"oban","duration":2152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:37:37.546 [info] {"source":"oban","duration":2309,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:38:00.347 [info] {"source":"oban","duration":465,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:38:07.549 [info] {"source":"oban","duration":2070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:38:37.552 [info] {"source":"oban","duration":1651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:39:00.350 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:39:07.554 [info] {"source":"oban","duration":1840,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:39:37.557 [info] {"source":"oban","duration":1494,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:39:47.629 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 07:40:00.351 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:40:07.559 [info] {"source":"oban","duration":1644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:40:37.563 [info] {"source":"oban","duration":2370,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:41:00.353 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:41:07.566 [info] {"source":"oban","duration":2185,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:41:37.569 [info] {"source":"oban","duration":2175,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:41:47.644 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:42:00.355 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:42:07.571 [info] {"source":"oban","duration":1530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:42:37.574 [info] {"source":"oban","duration":1438,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:43:00.357 [info] {"source":"oban","duration":634,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:43:07.578 [info] {"source":"oban","duration":3014,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:43:37.745 [info] {"source":"oban","duration":165713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 07:44:00.359 [info] {"source":"oban","duration":474,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:44:07.765 [info] {"source":"oban","duration":18230,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:44:37.767 [info] {"source":"oban","duration":1655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:45:00.361 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:45:07.771 [info] {"source":"oban","duration":2121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:45:37.774 [info] {"source":"oban","duration":1916,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:46:00.363 [info] {"source":"oban","duration":453,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:46:07.777 [info] {"source":"oban","duration":2537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:46:37.781 [info] {"source":"oban","duration":2157,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:47:00.366 [info] {"source":"oban","duration":769,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:47:07.784 [info] {"source":"oban","duration":1770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:47:37.786 [info] {"source":"oban","duration":1871,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:47:41.114 [info] {"args":{"id":1},"id":3234,"meta":{},"system_time":1773215261092130985,"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"]} 07:47:41.118 [debug] QUERY OK source="sources" db=1.3ms queue=0.6ms idle=308.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:41.172 [debug] QUERY OK source="settings" db=53.5ms queue=0.3ms idle=311.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:41.475 [debug] QUERY OK source="media_items" db=300.9ms queue=0.1ms idle=367.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")))) [1] 07:47:41.536 [debug] QUERY OK source="media_items" db=60.2ms queue=0.3ms idle=419.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 07:47:41.538 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=464.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] 07:47:41.541 [debug] QUERY OK source="settings" db=0.9ms idle=423.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:41.688 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 07:47:41.704 [debug] Current batch of media processed. Will check again in 1000ms 07:47:41.705 [debug] QUERY OK source="settings" db=16.6ms queue=0.2ms idle=515.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:41.707 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=230.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:41.707 [debug] QUERY OK source="settings" db=0.5ms idle=170.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:47:41.709 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/86/16/8616767e1b25cd040362367c55b22a4f8400baa4645ca560c09410bbc5fecb34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 07:47:42.705 [debug] Current batch of media processed. Will check again in 1000ms 07:47:43.706 [debug] Current batch of media processed. Will check again in 1000ms 07:47:44.707 [debug] Current batch of media processed. Will check again in 1000ms 07:47:45.708 [debug] Current batch of media processed. Will check again in 1000ms 07:47:46.709 [debug] Current batch of media processed. Will check again in 1000ms 07:47:47.710 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 07:47:47.712 [debug] QUERY OK source="sources" db=0.8ms idle=782.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:47.715 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=784.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:47.741 [debug] QUERY OK source="media_items" db=24.9ms queue=0.1ms idle=786.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 07:47:47.781 [debug] QUERY OK source="media_items" db=37.9ms idle=813.6ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "3f4257f9-6d05-4e07-b9cd-cf8287eeaee6", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 07:47:47Z], ~U[2026-03-11 07:47:47Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 07:47:47.782 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=707.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:47.784 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.3ms idle=70.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] 07:47:47.785 [debug] QUERY OK source="media_items" db=0.5ms idle=69.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 [37332] 07:47:47.785 [debug] Current batch of media processed. Will check again in 1000ms 07:47:48.787 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", "id" => "tHL82zmafoM", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 07:47:48.789 [debug] QUERY OK source="sources" db=0.8ms idle=1007.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:48.791 [debug] QUERY OK source="sources" db=1.7ms idle=1007.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:48.792 [debug] QUERY OK source="media_items" db=0.5ms idle=1008.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:48.824 [debug] QUERY OK source="media_items" db=30.3ms queue=0.1ms idle=1008.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "d29d2a6b-cec4-4961-9ac4-a9e68489f643", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:48Z], ~U[2026-03-11 07:47:48Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:48.826 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=748.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:48.828 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.2ms idle=38.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:48.830 [debug] QUERY OK source="media_items" db=0.7ms idle=37.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 [36910] 07:47:48.830 [debug] Current batch of media processed. Will check again in 1000ms 07:47:49.834 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "9itQHfB7DOU", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 07:47:49.836 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1010.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:49.838 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1010.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:49.840 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1010.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:49.889 [debug] QUERY OK source="media_items" db=46.9ms idle=1011.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "5f466c47-c704-4ff1-8f57-95f599199a7c", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:49Z], ~U[2026-03-11 07:47:49Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:49.899 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=818.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:49.901 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=63.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] 07:47:49.903 [debug] QUERY OK source="media_items" db=1.4ms idle=63.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 [36578] 07:47:49.904 [debug] Current batch of media processed. Will check again in 1000ms 07:47:50.905 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "776wd4rgME8", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 07:47:50.907 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1018.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:50.908 [debug] QUERY OK source="sources" db=0.7ms idle=1008.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:50.910 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1008.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:50.939 [debug] QUERY OK source="media_items" db=27.8ms queue=0.1ms idle=1006.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "bf850e73-5c42-46ac-924c-1f583491154c", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:50Z], ~U[2026-03-11 07:47:50Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:50.941 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=855.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:50.942 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=34.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:50.946 [debug] QUERY OK source="media_items" db=3.2ms idle=33.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 [36579] 07:47:50.946 [debug] Current batch of media processed. Will check again in 1000ms 07:47:51.947 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", "id" => "pdsPOqKjcr4", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 07:47:51.951 [debug] QUERY OK source="sources" db=2.2ms queue=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:51.954 [debug] QUERY OK source="sources" db=2.2ms queue=0.2ms idle=1010.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:51.957 [debug] QUERY OK source="media_items" db=2.5ms queue=0.2ms idle=1012.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 07:47:51.994 [debug] QUERY OK source="media_items" db=31.3ms queue=0.2ms idle=1015.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "f1c7b556-b3cb-47e5-a20b-825abd05500a", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 07:47:51Z], ~U[2026-03-11 07:47:51Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 07:47:51.997 [debug] QUERY OK source="sources" db=1.8ms queue=1.0ms idle=907.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:51.999 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=47.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] 07:47:52.002 [debug] QUERY OK source="media_items" db=1.8ms queue=0.2ms idle=46.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 [36580] 07:47:52.002 [debug] Current batch of media processed. Will check again in 1000ms 07:47:53.026 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", "id" => "svv5O1pBDuI", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 07:47:53.028 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1034.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:53.030 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=1031.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:53.032 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1031.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:53.128 [debug] QUERY OK source="media_items" db=95.2ms idle=1030.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "1fcef040-9522-4354-8b45-7258f646f332", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:53Z], ~U[2026-03-11 07:47:53Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:53.130 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=100.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:53.131 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=100.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] 07:47:53.133 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=99.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 [36581] 07:47:53.134 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", "id" => "PBciEuxYu9Y", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 07:47:53.135 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=42.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:53.137 [debug] QUERY OK source="sources" db=0.8ms queue=0.3ms 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" = ?) [1] 07:47:53.138 [debug] QUERY OK source="media_items" db=0.4ms idle=7.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:53.209 [debug] QUERY OK source="media_items" db=70.2ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "27bd16c6-57b7-4361-8d81-2d332f37770c", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:53Z], ~U[2026-03-11 07:47:53Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:53.211 [debug] QUERY OK source="sources" db=1.2ms queue=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" = ?) [1] 07:47:53.234 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms idle=97.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] 07:47:53.236 [debug] QUERY OK source="media_items" db=1.3ms idle=97.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 [36582] 07:47:53.236 [debug] Current batch of media processed. Will check again in 1000ms 07:47:54.237 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", "id" => "TJek4wUSGEA", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 07:47:54.239 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1028.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:54.241 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1028.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:54.243 [debug] QUERY OK source="media_items" db=0.7ms queue=0.3ms idle=1007.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:54.326 [debug] QUERY OK source="media_items" db=81.6ms idle=1007.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "35615158-7333-4ef8-a9d0-69dd64b1e81a", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:54Z], ~U[2026-03-11 07:47:54Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:54.350 [debug] QUERY OK source="sources" db=1.6ms queue=0.4ms idle=249.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:54.376 [debug] QUERY OK source="media_profiles" db=25.0ms queue=0.1ms idle=111.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] 07:47:54.381 [debug] QUERY OK source="media_items" db=4.2ms queue=0.1ms idle=135.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 [36583] 07:47:54.383 [debug] Current batch of media processed. Will check again in 1000ms 07:47:55.384 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", "id" => "06w596oNzAw", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 07:47:55.387 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1060.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:55.389 [debug] QUERY OK source="sources" db=0.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:55.390 [debug] QUERY OK source="media_items" db=0.8ms idle=1013.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:55.416 [debug] QUERY OK source="media_items" db=23.7ms queue=0.1ms idle=1010.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "7f18beaf-fe66-4926-97a6-40c1c2c135be", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:55Z], ~U[2026-03-11 07:47:55Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:55.418 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=315.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:55.420 [debug] QUERY OK source="media_profiles" db=1.4ms idle=31.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 07:47:55.422 [debug] QUERY OK source="media_items" db=1.1ms idle=31.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36439] 07:47:55.422 [debug] Current batch of media processed. Will check again in 1000ms 07:47:55.853 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/86/16/8616767e1b25cd040362367c55b22a4f8400baa4645ca560c09410bbc5fecb34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 07:47:55.942 [debug] Gracefully stopping file follower 07:47:55.943 [debug] QUERY OK source="sources" db=1.1ms idle=551.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 07:47:55.945 [debug] QUERY OK source="sources" db=0.8ms idle=528.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:55.947 [debug] QUERY OK source="media_items" db=1.4ms idle=527.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 07:47:55.964 [debug] QUERY OK source="media_items" db=15.5ms idle=528.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "8baf6080-ba29-4e24-b7ed-5339b8ba00fa", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 07:47:55Z], ~U[2026-03-11 07:47:55Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 07:47:55.965 [debug] QUERY OK source="sources" db=1.1ms idle=542.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:55.967 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=22.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:56.036 [debug] QUERY OK source="media_items" db=67.3ms idle=22.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "a674f402-149e-4014-a2d9-ee5c7c3ca71a", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:55Z], ~U[2026-03-11 07:47:55Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:56.038 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=89.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.041 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms idle=75.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:56.078 [debug] QUERY OK source="media_items" db=35.5ms queue=0.1ms idle=76.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "c3a27679-b3ed-4799-9bbb-9a94f8cbdbb0", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:56.080 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=112.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.082 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=46.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:56.109 [debug] QUERY OK source="media_items" db=25.7ms idle=44.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "20452209-21d9-4472-8d0a-3c2f1fd79081", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:56.110 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=32.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.112 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=30.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 07:47:56.135 [debug] QUERY OK source="media_items" db=21.8ms idle=30.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "d304d953-e32d-4636-98fd-51c8ac0374f9", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 07:47:56.137 [debug] QUERY OK source="sources" db=1.0ms queue=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" = ?) [1] 07:47:56.138 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=28.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:56.162 [debug] QUERY OK source="media_items" db=22.3ms queue=0.1ms idle=28.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "bdb6a2c8-508c-4321-bd66-156aa942afac", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:56.163 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=50.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.165 [debug] QUERY OK source="media_items" db=1.2ms idle=29.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 07:47:56.254 [debug] QUERY OK source="media_items" db=70.8ms idle=28.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "85d810fb-c4be-4147-b012-dce99c5caf00", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 07:47:56.270 [debug] QUERY OK source="sources" db=0.6ms queue=0.4ms idle=130.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.272 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=109.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:56.280 [debug] QUERY OK source="media_items" db=6.7ms idle=109.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "04c403f4-cdc8-4e56-9f9f-8b583975106d", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:56.282 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=115.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.284 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=45.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:56.300 [debug] QUERY OK source="media_items" db=11.9ms idle=14.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "edca01b7-81f6-4aab-87a7-66a12d46e407", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:56.301 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:47:56.303 [debug] QUERY OK source="media_items" db=1.1ms idle=21.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 07:47:56.350 [debug] QUERY OK source="media_items" db=18.9ms idle=21.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "dd267fc8-6556-4bbd-8676-05e86f2956e9", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", nil, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 07:47:56.352 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=66.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z], 1] 07:47:56.354 [debug] QUERY OK source="media_items" db=1.3ms idle=56.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 07:47:56.356 [debug] QUERY OK source="media_items" db=0.6ms idle=53.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")))) [1] 07:47:56.356 [debug] QUERY OK source="media_items" db=0.2ms idle=53.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 07:47:56.371 [debug] QUERY OK source="tasks" db=8.5ms idle=8.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3235, 1, ~U[2026-03-11 07:47:56Z], ~U[2026-03-11 07:47:56Z]] 07:47:56.376 [info] {"args":{"id":1},"id":3234,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":15279917,"event":"job:stop","queue_time":411330,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 07:48:00.367 [info] {"source":"oban","duration":387,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:48:07.789 [info] {"source":"oban","duration":1755,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:48:37.792 [info] {"source":"oban","duration":1743,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:48:47.693 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 07:49:00.368 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:49:07.796 [info] {"source":"oban","duration":2022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:49:37.798 [info] {"source":"oban","duration":1536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:50:00.370 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:50:07.802 [info] {"source":"oban","duration":2295,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:50:37.804 [info] {"source":"oban","duration":1925,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:51:00.373 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:51:08.229 [info] {"source":"oban","duration":423282,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:51:38.232 [info] {"source":"oban","duration":1929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:51:47.712 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 07:52:00.375 [info] {"source":"oban","duration":421,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:52:08.234 [info] {"source":"oban","duration":1572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:52:38.238 [info] {"source":"oban","duration":2304,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:53:00.377 [info] {"source":"oban","duration":492,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:53:08.240 [info] {"source":"oban","duration":1545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:53:38.243 [info] {"source":"oban","duration":1877,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:54:00.379 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:54:06.206 [info] GET / 07:54:06.345 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:54:06.637 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=1400.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:54:06.707 [debug] QUERY OK source="media_profiles" db=68.4ms queue=0.1ms idle=646.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:54:06.709 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=715.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:54:06.710 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=717.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:54:06.712 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=73.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:54:07.197 [debug] QUERY OK source="settings" db=14.8ms queue=0.4ms idle=542.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:54:07.200 [debug] QUERY OK source="settings" db=0.7ms queue=1.3ms idle=490.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:54:07.515 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=805.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:54:07.941 [debug] QUERY OK source="tasks" db=17.8ms queue=0.2ms idle=1211.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"] 07:54:08.530 [info] {"source":"oban","duration":1522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:54:08.537 [debug] QUERY OK source="media_items" db=6.4ms idle=1330.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:54:08.541 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1024.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:54:08.543 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=898.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:54:08.661 [debug] QUERY OK source="media_items" db=0.9ms queue=0.3ms idle=128.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:54:08.762 [debug] QUERY OK source="media_items" db=93.3ms queue=0.1ms idle=130.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:54:08.981 [info] Sent 200 in 2809ms 07:54:38.532 [info] {"source":"oban","duration":1606,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:55:00.381 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:55:08.535 [info] {"source":"oban","duration":1557,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:55:31.784 [info] GET / 07:55:31.812 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:55:31.815 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=1285.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.846 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=1291.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:55:31.849 [debug] QUERY OK source="sources" db=0.7ms queue=0.4ms idle=1320.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:55:31.852 [debug] QUERY OK source="media_items" db=1.2ms queue=1.5ms idle=1322.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:31.854 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=978.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:31.855 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=40.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.857 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=34.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.860 [info] GET / 07:55:31.861 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:55:31.863 [debug] QUERY OK source="settings" db=1.3ms idle=12.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.865 [debug] QUERY OK source="media_profiles" db=1.2ms idle=11.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:55:31.867 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=11.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:55:31.884 [debug] QUERY OK source="media_items" db=16.4ms queue=0.1ms idle=11.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:31.886 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=20.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:31.894 [debug] QUERY OK source="settings" db=6.4ms queue=0.2ms idle=22.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.896 [debug] QUERY OK source="settings" db=2.5ms queue=1.7ms idle=24.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.897 [debug] QUERY OK source="settings" db=2.6ms queue=0.1ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.901 [debug] QUERY OK source="settings" db=3.0ms queue=0.1ms idle=12.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:31.915 [debug] QUERY OK source="tasks" db=12.0ms idle=9.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:55:31.917 [debug] QUERY OK source="media_items" db=0.8ms idle=20.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:31.919 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=21.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:31.921 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=23.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:55:32.060 [debug] QUERY OK source="tasks" db=91.3ms queue=0.1ms idle=53.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:55:32.064 [debug] QUERY OK source="media_items" db=140.6ms idle=21.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:55:32.064 [debug] QUERY OK source="media_items" db=2.6ms idle=144.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:32.066 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=145.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:32.069 [info] Sent 200 in 209ms 07:55:32.072 [debug] QUERY OK source="media_items" db=6.6ms idle=143.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:32.073 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=12.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:55:32.091 [debug] QUERY OK source="media_items" db=16.1ms queue=0.1ms idle=11.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:55:32.094 [debug] QUERY OK source="media_items" db=2.0ms queue=0.2ms idle=27.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:32.096 [info] Sent 200 in 312ms 07:55:34.203 [info] GET /console/ 07:55:34.541 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1012.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:34.542 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1013.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:34.620 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:35.486 [info] GET /server 07:55:35.488 [debug] QUERY OK source="settings" db=0.8ms idle=1959.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.489 [debug] QUERY OK source="settings" db=0.8ms idle=1582.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.489 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:34.762 [error] #PID<0.140956.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 2) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /console/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /console (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140956.0>, params: %{}, path_info: ["console"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/console/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6ULtQVRmFkFkAB53B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /console (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140956.0>, params: %{}, path_info: ["console"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/console/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6ULtQVRmFkFkAB53B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, (truncated) 07:55:35.533 [info] GET / 07:55:35.533 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:55:35.535 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=992.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.537 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.9ms idle=992.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:55:35.538 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=141.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:55:35.575 [debug] QUERY OK source="media_items" db=36.8ms idle=50.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:35.576 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=86.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:35.578 [debug] QUERY OK source="settings" db=1.1ms idle=42.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.580 [debug] QUERY OK source="settings" db=0.9ms idle=41.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.581 [debug] QUERY OK source="settings" db=0.7ms idle=42.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:35.622 [debug] QUERY OK source="tasks" db=0.9ms queue=0.2ms idle=45.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:55:35.624 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=47.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:35.627 [debug] QUERY OK source="media_items" db=2.4ms queue=0.2ms idle=46.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:35.644 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=62.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:55:35.648 [debug] QUERY OK source="media_items" db=1.1ms idle=65.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"))) [] 07:55:35.663 [debug] QUERY OK source="media_items" db=1.5ms queue=1.1ms idle=36.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:35.664 [info] Sent 200 in 131ms 07:55:35.566 [error] #PID<0.140957.0> running PinchflatWeb.Endpoint (connection #PID<0.140954.0>, stream id 2) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /server ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140954.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37326}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140957.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UQfUpj9LxwIAB53R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140954.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37326}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140954.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37326}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140957.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UQfUpj9LxwIAB53R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: (truncated) 07:55:37.594 [info] GET /server-status 07:55:37.596 [debug] QUERY OK source="settings" db=0.6ms idle=193.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:37.602 [debug] QUERY OK source="settings" db=0.8ms idle=35.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:37.603 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:37.631 [error] #PID<0.140959.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 4) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /server-status ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-status (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140959.0>, params: %{}, path_info: ["server-status"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server-status", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UYV1Of4GG5wAB54B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-status (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140959.0>, params: %{}, path_info: ["server-status"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server-status", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UYV1Of4GG5wAB54B"} ], scheme: :http, script_name: [], (truncated) 07:55:38.488 [info] GET /console/ 07:55:38.489 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=922.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.490 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=924.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.491 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:38.491 [error] #PID<0.140960.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 5) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /console/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /console (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140960.0>, params: %{}, path_info: ["console"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/console/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Ubq3lNZgFC4AB54R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /console (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/console/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140960.0>, params: %{}, path_info: ["console"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/console/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Ubq3lNZgFC4AB54R"} ], scheme: :http, script_name: [], secret_key_base: :. (truncated) 07:55:38.539 [info] {"source":"oban","duration":2042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:55:38.632 [info] GET / 07:55:38.632 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 07:55:38.634 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=1030.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.635 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=229.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:55:38.637 [debug] QUERY OK source="sources" db=0.7ms queue=0.3ms idle=146.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:55:38.681 [debug] QUERY OK source="media_items" db=44.0ms queue=0.1ms idle=146.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:38.683 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=143.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:38.685 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=50.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.687 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=50.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.688 [debug] QUERY OK source="settings" db=0.8ms idle=50.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.691 [debug] QUERY OK source="tasks" db=0.7ms idle=8.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:55:38.702 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=16.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:55:38.704 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=17.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:38.706 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=18.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:55:38.710 [debug] QUERY OK source="media_items" db=2.0ms idle=19.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:55:38.713 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=19.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:55:38.715 [info] Sent 200 in 83ms 07:55:38.776 [info] GET /server 07:55:38.778 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=74.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.779 [debug] QUERY OK source="settings" db=0.2ms idle=73.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:38.780 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:38.782 [error] #PID<0.140962.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 7) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /server ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140962.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UcvmrRRNg5gAB55x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140962.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UcvmrRRNg5gAB55x"} ], scheme: :http, script_name: [], secret_key_base: :..., st (truncated) 07:55:39.290 [info] GET /about 07:55:39.292 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=585.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.293 [debug] QUERY OK source="settings" db=0.2ms idle=582.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.293 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:39.295 [error] #PID<0.140963.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 8) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /about ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140963.0>, params: %{}, path_info: ["about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/about", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UeqIntTeVVkAB56B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140963.0>, params: %{}, path_info: ["about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/about", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UeqIntTeVVkAB56B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil (truncated) 07:55:39.634 [info] GET /server-status 07:55:39.635 [debug] QUERY OK source="settings" db=0.4ms idle=856.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.636 [debug] QUERY OK source="settings" db=0.5ms idle=856.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.636 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:39.637 [error] #PID<0.140964.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 9) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /server-status ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-status (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140964.0>, params: %{}, path_info: ["server-status"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server-status", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Uf8Dm6zJvmkAB56R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-status (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-status", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140964.0>, params: %{}, path_info: ["server-status"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/server-status", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Uf8Dm6zJvmkAB56R"} ], scheme: :http, (truncated) 07:55:39.987 [info] GET /login.action 07:55:39.991 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=698.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.992 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=699.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:39.992 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:39.994 [error] #PID<0.140965.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 10) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /login.action ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140965.0>, params: %{}, path_info: ["login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/login.action", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UhQcTNv-3VgAB56h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140965.0>, params: %{}, path_info: ["login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/login.action", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UhQcTNv-3VgAB56h"} ], scheme: :http, script_name: [], secret_key_base: :..., (truncated) 07:55:40.657 [info] GET /about 07:55:40.659 [debug] QUERY OK source="settings" db=0.6ms idle=1023.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:40.660 [debug] QUERY OK source="settings" db=0.6ms idle=1023.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:40.660 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:40.661 [error] #PID<0.140966.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 11) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /about ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140966.0>, params: %{}, path_info: ["about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/about", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UjvtJr0D7rIAB56x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /about (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/about", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140966.0>, params: %{}, path_info: ["about"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/about", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UjvtJr0D7rIAB56x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: : (truncated) 07:55:41.737 [info] GET /login.action 07:55:41.739 [debug] QUERY OK source="settings" db=0.9ms idle=1079.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:41.741 [debug] QUERY OK source="settings" db=0.4ms queue=0.8ms idle=1079.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:41.741 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:41.765 [error] #PID<0.140967.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 12) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /login.action ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140967.0>, params: %{}, path_info: ["login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/login.action", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Unxm3ZQPNxIAB57B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /login (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/login.action", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140967.0>, params: %{}, path_info: ["login"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/login.action", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Unxm3ZQPNxIAB57B"} ], scheme: :http, script_name: [], (truncated) 07:55:41.987 [info] GET /v2/_catalog 07:55:42.084 [info] Sent 404 in 97ms 07:55:42.085 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:42.747 [info] GET /v2/_catalog 07:55:42.748 [info] Sent 404 in 541µs 07:55:42.748 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:43.729 [info] GET /.DS_Store 07:55:43.731 [debug] QUERY OK source="settings" db=0.5ms idle=312.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:43.732 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=165.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:43.732 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:43.733 [error] #PID<0.140970.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 15) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.DS_Store ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140970.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.DS_Store", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UvMhwr2AUNUAB57x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140970.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.DS_Store", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UvMhwr2AUNUAB57x"} ], scheme: :http, script_name: [], secret_key_base: :..., stat (truncated) 07:55:44.249 [info] GET /.DS_Store 07:55:44.251 [debug] QUERY OK source="settings" db=0.5ms idle=684.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:44.252 [debug] QUERY OK source="settings" db=0.7ms idle=685.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:44.252 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:44.254 [error] #PID<0.140971.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 16) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.DS_Store ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140971.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.DS_Store", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UxIiTAZ5wOkAB58B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140971.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.DS_Store", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UxIiTAZ5wOkAB58B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: n (truncated) 07:55:44.776 [info] GET /.env 07:55:44.777 [debug] QUERY OK source="settings" db=0.3ms idle=1046.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:44.796 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=1063.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:44.796 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:44.797 [error] #PID<0.140972.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 17) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140972.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UzGNmV7gYYcAB58R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140972.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6UzGNmV7gYYcAB58R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: n (truncated) 07:55:45.397 [info] GET /.env 07:55:45.398 [debug] QUERY OK source="settings" db=0.2ms idle=1147.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:45.399 [debug] QUERY OK source="settings" db=0.5ms idle=1146.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:45.399 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:45.400 [error] #PID<0.140973.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 18) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140973.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6U1Y6-4UEMisAB58h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140973.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6U1Y6-4UEMisAB58h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: (truncated) 07:55:47.015 [info] GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application 07:55:47.017 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=591.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:47.018 [debug] QUERY OK source="settings" db=0.4ms queue=0.6ms idle=451.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:47.019 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:47.020 [error] #PID<0.140974.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 19) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140974.0>, params: %{}, path_info: ["ecp", "Current", "exporttool", "microsoft.exchange.ediscovery.exporttool"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6U7cC6aqAZzEAB58x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140974.0>, params: %{}, path_info: ["ecp", "Current", "exporttool", "microsoft.exchange.ediscovery.exporttool"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/ (truncated) 07:55:47.103 [info] GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application 07:55:47.105 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=537.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:47.107 [debug] QUERY OK source="settings" db=0.8ms queue=0.5ms idle=539.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:47.107 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:47.109 [error] #PID<0.140975.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 20) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140975.0>, params: %{}, path_info: ["ecp", "Current", "exporttool", "microsoft.exchange.ediscovery.exporttool"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6U7w6CqU8fAsAB59B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140975.0>, params: %{}, path_info: ["ecp", "Current", "exporttool", "microsoft.exchange.ediscovery.exporttool"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", (truncated) 07:55:50.955 [info] GET /.git/config 07:55:50.957 [debug] QUERY OK source="settings" db=0.6ms idle=518.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:50.998 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=431.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:50.998 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:50.999 [error] #PID<0.140976.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 21) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140976.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VKHVoAbwkV4AB59R"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140976.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VKHVoAbwkV4AB59R"} ], scheme: :http, script_name: [], secre (truncated) 07:55:51.159 [info] GET /.git/config 07:55:51.161 [debug] QUERY OK source="settings" db=0.3ms idle=594.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:51.161 [debug] QUERY OK source="settings" db=0.4ms idle=595.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:51.162 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:51.163 [error] #PID<0.140977.0> running PinchflatWeb.Endpoint (connection #PID<0.140952.0>, stream id 22) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140977.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VK4D2GGg740AB59h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37312}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140977.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VK4D2GGg740AB59h"} ], scheme: :http, sc (truncated) 07:55:51.781 [info] POST /graphql 07:55:51.837 [info] POST /graphql 07:55:51.982 [info] Sent 404 in 145ms 07:55:51.982 [info] Sent 404 in 201ms 07:55:51.983 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:51.983 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:52.492 [info] POST /api 07:55:52.493 [info] Sent 404 in 462µs 07:55:52.493 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:53.090 [info] POST /api 07:55:53.091 [info] Sent 404 in 1ms 07:55:53.091 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:53.320 [info] POST /api/graphql 07:55:53.320 [info] Sent 404 in 800µs 07:55:53.321 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.079 [info] POST /api/graphql 07:55:54.080 [info] Sent 404 in 768µs 07:55:54.080 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.199 [info] POST /graphql/api 07:55:54.199 [info] Sent 404 in 369µs 07:55:54.199 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.354 [info] POST /graphql/api 07:55:54.354 [info] Sent 404 in 344µs 07:55:54.354 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.496 [info] POST /api/gql 07:55:54.496 [info] Sent 404 in 371µs 07:55:54.496 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.849 [info] GET /s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties 07:55:54.850 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=402.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:54.851 [debug] QUERY OK source="settings" db=0.7ms idle=284.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:54.851 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:54.852 [error] #PID<0.140988.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 9) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140988.0>, params: %{}, path_info: ["s", "733313e2534313e2737313e2930323", "_", ";", "META-INF", "maven", "com.atlassian.jira", "jira-webapp-dist", "pom"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VYnn-LNHFGMAB5_x"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/733313e2534313e2737313e2930323/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140988.0>, params: %{}, path_info: ["s", "733313e2534313e2737313e2930323", "_", ";", "META-INF", "maven", "com.atlassian.jira", "jira-webapp-dist", "pom"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_strin (truncated) 07:55:54.987 [info] POST /api/gql 07:55:54.988 [info] Sent 404 in 778µs 07:55:54.988 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:55.639 [info] GET /s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties 07:55:55.640 [debug] QUERY OK source="settings" db=0.6ms idle=1073.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:55.641 [debug] QUERY OK source="settings" db=0.8ms idle=1074.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:55.642 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:55.643 [error] #PID<0.140990.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 11) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140990.0>, params: %{}, path_info: ["s", "4353e2138313e28333e2939313", "_", ";", "META-INF", "maven", "com.atlassian.jira", "jira-webapp-dist", "pom"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Vbj-w-JKf5cAB6AB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/s/4353e2138313e28333e2939313/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140990.0>, params: %{}, path_info: ["s", "4353e2138313e28333e2939313", "_", ";", "META-INF", "maven", "com.atlassian.jira", "jira-webapp-dist", "pom"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: (truncated) 07:55:55.728 [info] GET /config.json 07:55:55.729 [debug] QUERY OK source="settings" db=0.4ms idle=878.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:55.730 [debug] QUERY OK source="settings" db=0.2ms queue=0.3ms idle=878.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:55.730 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:55.731 [error] #PID<0.140991.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 12) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140991.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Vb5L6Bo7xbYAB6AR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140991.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Vb5L6Bo7xbYAB6AR"} ], scheme: :http, script_name: [], s (truncated) 07:55:56.366 [info] GET /config.json 07:55:56.368 [debug] QUERY OK source="settings" db=0.4ms idle=917.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:56.368 [debug] QUERY OK source="settings" db=0.5ms idle=727.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:56.369 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:56.369 [error] #PID<0.140992.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 13) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140992.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VeRgZphBSG4AB6Ah"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140992.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VeRgZphBSG4AB6Ah"} ], scheme: :http, script_name: [], secret_key_base: :..., (truncated) 07:55:57.663 [info] GET /telescope/requests 07:55:57.665 [debug] QUERY OK source="settings" db=1.3ms queue=0.3ms idle=207.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.666 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=99.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.666 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:57.668 [error] #PID<0.140993.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 14) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /telescope/requests ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /telescope/requests (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140993.0>, params: %{}, path_info: ["telescope", "requests"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/telescope/requests", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VjGhI4nf4lwAB6Ax"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /telescope/requests (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140993.0>, params: %{}, path_info: ["telescope", "requests"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/telescope/requests", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu (truncated) 07:55:57.813 [info] GET /info.php 07:55:57.815 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=248.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.816 [debug] QUERY OK source="settings" db=0.4ms queue=0.4ms idle=249.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.816 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:57.818 [error] #PID<0.140994.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 15) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /info.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140994.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VjqYhPH4o_AAB6BB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140994.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VjqYhPH4o_AAB6BB"} ], scheme: :http, script_name: [], secret_key_base: :..., (truncated) 07:55:57.916 [info] GET /telescope/requests 07:55:57.918 [debug] QUERY OK source="settings" db=1.4ms idle=350.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.919 [debug] QUERY OK source="settings" db=0.6ms idle=253.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:57.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:57.919 [error] #PID<0.140995.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 16) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /telescope/requests ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /telescope/requests (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140995.0>, params: %{}, path_info: ["telescope", "requests"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/telescope/requests", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VkC3PTI8bW0AB1fy"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /telescope/requests (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/telescope/requests", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140995.0>, params: %{}, path_info: ["telescope", "requests"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/telescope/requests", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VkC3PTI8bW0AB1fy"} (truncated) 07:55:58.817 [info] GET /actuator/env 07:55:58.819 [debug] QUERY OK source="settings" db=0.4ms idle=1003.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:58.820 [debug] QUERY OK source="settings" db=0.5ms idle=1003.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:55:58.820 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:55:58.821 [error] #PID<0.140998.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 17) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /actuator/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140998.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VnZ3vwMXt84AB6Bh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140998.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VnZ3vwMXt84AB6Bh"} ], scheme: :http, (truncated) 07:56:00.383 [info] {"source":"oban","duration":839,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:56:00.769 [info] GET /info.php 07:56:00.770 [debug] QUERY OK source="settings" db=0.7ms idle=1203.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:00.788 [debug] QUERY OK source="settings" db=17.1ms idle=1204.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:00.788 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:00.789 [error] #PID<0.140999.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 18) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /info.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140999.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VurJajWfyUEAB6Bx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.140999.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VurJajWfyUEAB6Bx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, (truncated) 07:56:00.813 [info] GET /swagger-ui.html 07:56:00.853 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=468.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:00.854 [debug] QUERY OK source="settings" db=0.8ms idle=388.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:00.854 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:00.855 [error] #PID<0.141000.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 19) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger-ui.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141000.0>, params: %{}, path_info: ["swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger-ui.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Vu1k81ElhbAAB6CB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141000.0>, params: %{}, path_info: ["swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_p (truncated) 07:56:01.307 [info] GET /.well-known/security.txt 07:56:01.309 [debug] QUERY OK source="settings" db=1.2ms idle=741.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:01.310 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=538.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:01.310 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:01.312 [error] #PID<0.141001.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 20) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.well-known/security.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/security (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/security.txt", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141001.0>, params: %{}, path_info: [".well-known", "security"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.well-known/security.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VwrYrdv6nYUAB6CR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/security.txt", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.well-known/security (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.well-known/security.txt", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 20, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141001.0>, params: %{}, path_info: [".well-known", "security"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.well-known/security.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-req (truncated) 07:56:02.002 [info] GET /swagger/index.html 07:56:02.004 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=1149.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:02.005 [debug] QUERY OK source="settings" db=0.8ms queue=0.4ms idle=1150.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:02.006 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:02.006 [error] #PID<0.141002.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 21) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/index.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141002.0>, params: %{}, path_info: ["swagger", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/index.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6VzRAPC3tP4YAB6Ch"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141002.0>, params: %{}, path_info: ["swagger", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} (truncated) 07:56:02.215 [info] GET /actuator/env 07:56:02.217 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=906.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:02.218 [debug] QUERY OK source="settings" db=1.0ms idle=907.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:02.218 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:02.219 [error] #PID<0.141003.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 22) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /actuator/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141003.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V0D3ZgViH4MAB6Cx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141003.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V0D3ZgViH4MAB6Cx"} ], scheme: :http, script_name: [], (truncated) 07:56:03.244 [info] GET /swagger/swagger-ui.html 07:56:03.245 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1241.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:03.247 [debug] QUERY OK source="settings" db=0.9ms idle=1240.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:03.247 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:03.247 [error] #PID<0.141004.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 23) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/swagger-ui.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141004.0>, params: %{}, path_info: ["swagger", "swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/swagger-ui.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V35NnAi_jTIAB6DB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141004.0>, params: %{}, path_info: ["swagger", "swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net" (truncated) 07:56:03.899 [info] GET /webjars/swagger-ui/index.html 07:56:03.900 [debug] QUERY OK source="settings" db=0.4ms idle=654.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:03.902 [debug] QUERY OK source="settings" db=0.2ms queue=0.6ms idle=653.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:03.902 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:03.903 [error] #PID<0.141006.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 24) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /webjars/swagger-ui/index.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webjars/swagger-ui/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141006.0>, params: %{}, path_info: ["webjars", "swagger-ui", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/webjars/swagger-ui/index.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V6VdTLPeRRcAB6DR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webjars/swagger-ui/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141006.0>, params: %{}, path_info: ["webjars", "swagger-ui", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, (truncated) 07:56:04.984 [info] GET /swagger-ui.html 07:56:04.985 [debug] QUERY OK source="settings" db=0.4ms idle=1418.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.040 [debug] QUERY OK source="settings" db=49.0ms queue=1.0ms idle=1422.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.040 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:05.041 [error] #PID<0.141007.0> running PinchflatWeb.Endpoint (connection #PID<0.140979.0>, stream id 25) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger-ui.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141007.0>, params: %{}, path_info: ["swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger-ui.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V-YGHbgH0JkAB6Dh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.140979.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 42388}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141007.0>, params: %{}, path_info: ["swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger-ui.html", (truncated) 07:56:05.108 [info] GET /swagger.json 07:56:05.110 [debug] QUERY OK source="settings" db=0.5ms idle=1208.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.111 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=1208.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.111 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:05.112 [error] #PID<0.141009.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141009.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6V-1vgfZowpIAB6Dx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141009.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger.json", (truncated) 07:56:05.598 [info] GET /swagger/index.html 07:56:05.599 [debug] QUERY OK source="settings" db=0.4ms idle=613.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.601 [debug] QUERY OK source="settings" db=0.9ms idle=561.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.601 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:05.602 [error] #PID<0.141010.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 2) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/index.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141010.0>, params: %{}, path_info: ["swagger", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/index.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WAqg5AcPZxgAB6EB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 2, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141010.0>, params: %{}, path_info: ["swagger", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_pa (truncated) 07:56:05.823 [info] GET /swagger/v1/swagger.json 07:56:05.825 [debug] QUERY OK source="settings" db=0.5ms idle=714.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.826 [debug] QUERY OK source="settings" db=1.0ms idle=714.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:05.826 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:05.828 [error] #PID<0.141011.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 3) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/v1/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/v1/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141011.0>, params: %{}, path_info: ["swagger", "v1", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/v1/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WBgO_EjSJe0AB6ER"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/v1/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141011.0>, params: %{}, path_info: ["swagger", "v1", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.ne (truncated) 07:56:06.538 [info] GET /swagger/swagger-ui.html 07:56:06.539 [debug] QUERY OK source="settings" db=0.7ms idle=938.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:06.548 [debug] QUERY OK source="settings" db=2.8ms queue=0.2ms idle=943.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:06.548 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:06.549 [error] #PID<0.141012.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 4) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/swagger-ui.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141012.0>, params: %{}, path_info: ["swagger", "swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/swagger-ui.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WEKe_mzVX8YAB6Eh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/swagger-ui (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/swagger-ui.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141012.0>, params: %{}, path_info: ["swagger", "swagger-ui"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto (truncated) 07:56:06.990 [info] GET /v2/api-docs 07:56:06.992 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=1166.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:06.994 [debug] QUERY OK source="settings" db=1.2ms idle=1166.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:06.994 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:06.996 [error] #PID<0.141013.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 5) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /v2/api-docs ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141013.0>, params: %{}, path_info: ["v2", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v2/api-docs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WF2b02vBmXsAB6Ex"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141013.0>, params: %{}, path_info: ["v2", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v2/api- (truncated) 07:56:07.978 [info] GET /webjars/swagger-ui/index.html 07:56:07.980 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=987.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:07.981 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=986.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:07.981 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:07.983 [error] #PID<0.141014.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 6) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /webjars/swagger-ui/index.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webjars/swagger-ui/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141014.0>, params: %{}, path_info: ["webjars", "swagger-ui", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/webjars/swagger-ui/index.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WJh7tkLdL1oAB6FB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webjars/swagger-ui/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webjars/swagger-ui/index.html", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 6, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141014.0>, params: %{}, path_info: ["webjars", "swagger-ui", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat (truncated) 07:56:08.348 [info] GET /v3/api-docs 07:56:08.351 [debug] QUERY OK source="settings" db=0.5ms queue=0.4ms idle=867.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.353 [debug] QUERY OK source="settings" db=0.7ms idle=784.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.354 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:08.356 [error] #PID<0.141015.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 7) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /v3/api-docs ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v3/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141015.0>, params: %{}, path_info: ["v3", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v3/api-docs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WK6BLptqwqQAB6FR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v3/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 7, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141015.0>, params: %{}, path_info: ["v3", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v3/api- (truncated) 07:56:08.541 [info] {"source":"oban","duration":1812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:56:08.586 [info] GET /swagger.json 07:56:08.587 [debug] QUERY OK source="settings" db=0.3ms idle=605.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.588 [debug] QUERY OK source="settings" db=0.6ms idle=236.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.589 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:08.590 [error] #PID<0.141016.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 8) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141016.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WLy5SVQ01AIAB6Fh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 8, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141016.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger.json", resp_body: nil, res (truncated) 07:56:08.823 [info] GET /api-docs/swagger.json 07:56:08.825 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=470.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.826 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=340.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:08.827 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:08.828 [error] #PID<0.141017.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 9) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /api-docs/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api-docs/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141017.0>, params: %{}, path_info: ["api-docs", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/api-docs/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WMrSAI8aLgAAB6Fx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api-docs/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 9, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141017.0>, params: %{}, path_info: ["api-docs", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-for (truncated) 07:56:09.421 [info] GET /swagger/v1/swagger.json 07:56:09.422 [debug] QUERY OK source="settings" db=0.3ms idle=880.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:09.423 [debug] QUERY OK source="settings" db=0.7ms idle=835.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:09.424 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:09.425 [error] #PID<0.141018.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 10) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /swagger/v1/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/v1/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141018.0>, params: %{}, path_info: ["swagger", "v1", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/swagger/v1/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WO591rY62pkAB6GB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger/v1/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger/v1/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 10, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141018.0>, params: %{}, path_info: ["swagger", "v1", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwa (truncated) 07:56:10.069 [info] GET /api/swagger.json 07:56:10.070 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=1244.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:10.071 [debug] QUERY OK source="settings" db=0.4ms queue=0.4ms idle=1244.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:10.072 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:10.072 [error] #PID<0.141019.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 11) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /api/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141019.0>, params: %{}, path_info: ["api", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/api/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WRUZNgSE_6QAB6GR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 11, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141019.0>, params: %{}, path_info: ["api", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], (truncated) 07:56:10.421 [info] GET /v2/api-docs 07:56:10.423 [debug] QUERY OK source="settings" db=0.6ms idle=999.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:10.424 [debug] QUERY OK source="settings" db=0.5ms idle=999.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:10.424 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:10.425 [error] #PID<0.141020.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 12) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /v2/api-docs ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141020.0>, params: %{}, path_info: ["v2", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v2/api-docs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WSoeaEKFYFUAB6Gh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 12, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141020.0>, params: %{}, path_info: ["v2", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v2/api-docs", resp_body (truncated) 07:56:11.042 [info] GET /trace.axd 07:56:11.043 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=971.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:11.044 [debug] QUERY OK source="settings" db=0.5ms queue=0.5ms idle=971.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:11.045 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:11.046 [error] #PID<0.141021.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 13) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /trace.axd ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /trace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141021.0>, params: %{}, path_info: ["trace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/trace.axd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WU8Wl03OxWQAB6Gx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /trace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 13, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141021.0>, params: %{}, path_info: ["trace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/trace.axd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WU8Wl03OxWQAB6Gx"} ], scheme: :http, script_name: [], secret_key_base: (truncated) 07:56:11.545 [info] GET /v3/api-docs 07:56:11.546 [debug] QUERY OK source="settings" db=0.4ms idle=1122.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:11.547 [debug] QUERY OK source="settings" db=0.2ms idle=1056.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:11.548 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:11.549 [error] #PID<0.141022.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 14) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /v3/api-docs ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v3/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141022.0>, params: %{}, path_info: ["v3", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v3/api-docs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WW0aG_veIcwAB6HB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v3/api-docs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v3/api-docs", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 14, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141022.0>, params: %{}, path_info: ["v3", "api-docs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/v3/api-docs", resp_body (truncated) 07:56:12.015 [info] GET /@vite/env 07:56:12.017 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=973.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:12.018 [debug] QUERY OK source="settings" db=0.7ms idle=972.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:12.018 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:12.020 [error] #PID<0.141023.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 15) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /@vite/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141023.0>, params: %{}, path_info: ["@vite", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/@vite/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WYkhHld_Ji4AB6HR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 15, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141023.0>, params: %{}, path_info: ["@vite", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/@vite/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WYkhHld_Ji4AB6HR"} ], scheme: :http, script_name: [], (truncated) 07:56:12.536 [info] GET /api-docs/swagger.json 07:56:12.537 [debug] QUERY OK source="settings" db=0.4ms idle=989.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:12.538 [debug] QUERY OK source="settings" db=0.4ms idle=990.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:12.538 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:12.539 [error] #PID<0.141024.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 16) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /api-docs/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api-docs/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141024.0>, params: %{}, path_info: ["api-docs", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/api-docs/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WagjXJjBJ74AB6Hh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api-docs/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api-docs/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 16, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141024.0>, params: %{}, path_info: ["api-docs", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} (truncated) 07:56:13.404 [info] GET /.vscode/sftp.json 07:56:13.405 [debug] QUERY OK source="settings" db=0.5ms idle=1387.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:13.406 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=1387.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:13.406 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:13.407 [error] #PID<0.141025.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 17) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.vscode/sftp.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141025.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wdvgyxcw48cAB6Hx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 17, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141025.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wdvgyxcw48cAB6Hx"} (truncated) 07:56:13.990 [info] OPTIONS / 07:56:13.991 [debug] QUERY OK source="settings" db=0.6ms idle=585.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:13.992 [debug] QUERY OK source="settings" db=0.2ms idle=585.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:13.992 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:13.993 [error] #PID<0.141026.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 18) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: OPTIONS / ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for OPTIONS / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "OPTIONS", owner: #PID<0.141026.0>, params: %{}, path_info: [], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wf7PT1HhtlEAB6IB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for OPTIONS / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 18, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "OPTIONS", owner: #PID<0.141026.0>, params: %{}, path_info: [], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wf7PT1HhtlEAB6IB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, statu (truncated) 07:56:14.314 [info] GET /api/swagger.json 07:56:14.315 [debug] QUERY OK source="settings" db=0.4ms idle=817.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:14.317 [debug] QUERY OK source="settings" db=0.7ms queue=0.3ms idle=747.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:14.317 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:14.318 [error] #PID<0.141028.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 19) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /api/swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141028.0>, params: %{}, path_info: ["api", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/api/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WhIe0AlJ_iYAB6IR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/swagger.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/json", "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 19, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141028.0>, params: %{}, path_info: ["api", "swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/json"}, {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/api/swag (truncated) 07:56:15.047 [info] GET / 07:56:15.047 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"rest_route" => "/wp/v2/users/"} Pipelines: [:browser] 07:56:15.049 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=1056.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:15.050 [debug] QUERY OK source="media_profiles" db=0.9ms idle=1057.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:56:15.051 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=735.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:56:15.052 [debug] QUERY OK source="media_items" db=0.6ms idle=734.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:56:15.053 [debug] QUERY OK source="media_items" db=0.4ms idle=553.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:56:15.054 [debug] QUERY OK source="settings" db=0.5ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:15.055 [debug] QUERY OK source="settings" db=0.6ms 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 [] 07:56:15.057 [debug] QUERY OK source="settings" db=1.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 [] 07:56:15.059 [debug] QUERY OK source="tasks" db=0.3ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:56:15.060 [debug] QUERY OK source="media_items" db=0.4ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:56:15.061 [debug] QUERY OK source="media_items" db=0.8ms queue=0.4ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:56:15.063 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:56:15.066 [debug] QUERY OK source="media_items" db=1.0ms idle=7.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:56:15.068 [debug] QUERY OK source="media_items" db=2.2ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 07:56:15.070 [info] Sent 200 in 23ms 07:56:15.265 [info] GET /trace.axd 07:56:15.267 [debug] QUERY OK source="settings" db=0.4ms idle=206.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:15.268 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=206.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:15.269 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:15.270 [error] #PID<0.141030.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 21) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /trace.axd ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /trace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141030.0>, params: %{}, path_info: ["trace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/trace.axd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WkrVoRBG8w8AB6Ix"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /trace (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/trace.axd", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 21, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141030.0>, params: %{}, path_info: ["trace"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/trace.axd", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WkrVoRBG8w8AB6Ix"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, (truncated) 07:56:16.019 [info] GET /@vite/env 07:56:16.020 [debug] QUERY OK source="settings" db=0.7ms idle=953.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:16.021 [debug] QUERY OK source="settings" db=0.5ms idle=952.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:16.022 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:16.023 [error] #PID<0.141031.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 22) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /@vite/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141031.0>, params: %{}, path_info: ["@vite", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/@vite/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WnfAbrcVVrAAB6JB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/env", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 22, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141031.0>, params: %{}, path_info: ["@vite", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/@vite/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WnfAbrcVVrAAB6JB"} ], scheme: :http, script_name: [], secret_key_base: :..., (truncated) 07:56:16.806 [info] GET /debug/default/view 07:56:16.807 [debug] QUERY OK source="settings" db=0.5ms idle=786.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:16.808 [debug] QUERY OK source="settings" db=0.4ms idle=785.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:16.808 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:16.809 [error] #PID<0.141032.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 23) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /debug/default/view?panel=config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141032.0>, params: %{"panel" => "config"}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"panel" => "config"}, query_string: "panel=config", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/default/view", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WqannrdQjRwAB6JR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)", "x-forwarded-for" => "143.244.168.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 23, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141032.0>, params: %{"panel" => "config"}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"panel" => "config"}, query_string: "panel=config", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.733313e2534313e2737313e2930323; +https://leakix.net)"}, {"x-forwarded-for", "143.244.168.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/default/view", resp_body: nil, (truncated) 07:56:17.060 [info] GET /.vscode/sftp.json 07:56:17.061 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=556.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:17.062 [debug] QUERY OK source="settings" db=0.9ms idle=493.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:17.063 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:17.063 [error] #PID<0.141033.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 24) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /.vscode/sftp.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141033.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WrXJ4Frxsd4AB6Jh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 24, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141033.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6WrXJ4Frxsd4AB6Jh"} ], scheme: :http, (truncated) 07:56:18.720 [info] OPTIONS / 07:56:18.721 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=211.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:18.723 [debug] QUERY OK source="settings" db=1.4ms idle=153.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:18.723 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:18.725 [error] #PID<0.141034.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 25) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: OPTIONS / ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for OPTIONS / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "OPTIONS", owner: #PID<0.141034.0>, params: %{}, path_info: [], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wxi9xIcgNLcAB6Jx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for OPTIONS / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "OPTIONS", body_length: 0, path_info: :undefined, qs: "", streamid: 25, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "OPTIONS", owner: #PID<0.141034.0>, params: %{}, path_info: [], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6Wxi9xIcgNLcAB6Jx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, rout (truncated) 07:56:19.797 [info] GET / 07:56:19.797 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"rest_route" => "/wp/v2/users/"} Pipelines: [:browser] 07:56:19.799 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=1230.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:19.800 [debug] QUERY OK source="media_profiles" db=0.5ms decode=0.1ms idle=1231.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 07:56:19.801 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1079.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 07:56:19.802 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1078.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:56:19.803 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=290.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 07:56:19.804 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:19.805 [debug] QUERY OK source="settings" db=0.2ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:19.806 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:19.809 [debug] QUERY OK source="tasks" db=1.3ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 07:56:19.810 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=6.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)) [] 07:56:19.812 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "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] 07:56:19.813 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 07:56:19.816 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=8.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 07:56:19.818 [debug] QUERY OK source="media_items" db=1.3ms idle=7.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) 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] 07:56:19.820 [info] Sent 200 in 23ms 07:56:20.429 [info] GET /debug/default/view 07:56:20.430 [debug] QUERY OK source="settings" db=0.6ms idle=618.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:20.432 [debug] QUERY OK source="settings" db=0.8ms idle=619.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 07:56:20.432 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 07:56:20.433 [error] #PID<0.141036.0> running PinchflatWeb.Endpoint (connection #PID<0.141008.0>, stream id 27) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /debug/default/view?panel=config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141036.0>, params: %{"panel" => "config"}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"panel" => "config"}, query_string: "panel=config", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/default/view", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6W36VpJejtk0AB6Kh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141008.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35074}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)", "x-forwarded-for" => "209.38.248.17", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "panel=config", streamid: 27, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141036.0>, params: %{"panel" => "config"}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"panel" => "config"}, query_string: "panel=config", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (l9scan/2.0.4353e2138313e28333e2939313; +https://leakix.net)"}, {"x-forwarded-for", "209.38.248.17"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/default/view", resp_body: nil, resp_cookies: %{}, (truncated) 07:56:38.544 [info] {"source":"oban","duration":1864,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:57:00.386 [info] {"source":"oban","duration":778,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:57:08.547 [info] {"source":"oban","duration":1859,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:57:38.550 [info] {"source":"oban","duration":1534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:58:00.387 [info] {"source":"oban","duration":305,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:58:08.553 [info] {"source":"oban","duration":2311,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:58:38.555 [info] {"source":"oban","duration":1873,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:59:00.388 [info] {"source":"oban","duration":316,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 07:59:08.559 [info] {"source":"oban","duration":2025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:59:38.562 [info] {"source":"oban","duration":1984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 07:59:47.883 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:00:00.390 [info] {"source":"oban","duration":488,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:00:08.575 [info] {"source":"oban","duration":11427,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:00:38.577 [info] {"source":"oban","duration":1565,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:00:41.310 [info] HEAD / 08:00:41.310 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:00:41.311 [debug] QUERY OK source="settings" db=0.4ms idle=1739.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.312 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=1072.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:00:41.313 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=741.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:00:41.314 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=742.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.315 [debug] QUERY OK source="media_items" db=0.5ms idle=72.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.316 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.316 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.318 [debug] QUERY OK source="settings" db=0.6ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.320 [debug] QUERY OK source="tasks" db=0.7ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:00:41.322 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=6.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.343 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=25.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:00:41.344 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=26.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:00:41.346 [debug] QUERY OK source="media_items" db=0.4ms queue=0.3ms idle=27.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:00:41.349 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=26.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:00:41.350 [info] Sent 200 in 40ms 08:00:41.725 [info] GET / 08:00:41.726 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:00:41.727 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=404.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.728 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.2ms idle=384.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:00:41.729 [debug] QUERY OK source="sources" db=0.6ms idle=384.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:00:41.730 [debug] QUERY OK source="media_items" db=0.5ms idle=382.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.731 [debug] QUERY OK source="media_items" db=1.2ms idle=381.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.732 [debug] QUERY OK source="settings" db=0.1ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.733 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.735 [debug] QUERY OK source="settings" db=0.7ms idle=4.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:41.736 [debug] QUERY OK source="tasks" db=0.5ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:00:41.739 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=5.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:00:41.740 [debug] QUERY OK source="media_items" db=0.8ms queue=0.3ms idle=7.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:00:41.741 [debug] QUERY OK source="sources" db=0.6ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:00:41.744 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=8.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:00:41.746 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=8.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:00:41.748 [info] Sent 200 in 22ms 08:00:43.486 [info] HEAD /_next 08:00:43.487 [debug] QUERY OK source="settings" db=0.6ms idle=1744.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:43.489 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=1743.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:43.489 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:00:43.491 [error] #PID<0.141064.0> running PinchflatWeb.Endpoint (connection #PID<0.141061.0>, stream id 3) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: HEAD /_next ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_next (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_next", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/_next", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141064.0>, params: %{}, path_info: ["_next"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/_next"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/_next", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6mL4CaGEqp0MAB6OR"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_next", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/_next", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_next (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_next", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/_next", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141064.0>, params: %{}, path_info: ["_next"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/_next"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", " (truncated) 08:00:43.996 [info] HEAD /__rsc 08:00:43.997 [debug] QUERY OK source="settings" db=0.3ms idle=751.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:43.998 [debug] QUERY OK source="settings" db=0.5ms idle=510.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:43.999 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:00:44.000 [error] #PID<0.141065.0> running PinchflatWeb.Endpoint (connection #PID<0.141061.0>, stream id 4) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: HEAD /__rsc ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /__rsc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/__rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141065.0>, params: %{}, path_info: ["__rsc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/__rsc"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/__rsc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6mNxzjZSn9V4AB6Oh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/__rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /__rsc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/__rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 4, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141065.0>, params: %{}, path_info: ["__rsc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/__rsc"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", " (truncated) 08:00:44.644 [info] HEAD /rsc 08:00:44.645 [debug] QUERY OK source="settings" db=0.3ms idle=1073.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:44.645 [debug] QUERY OK source="settings" db=0.1ms idle=1074.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:00:44.646 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:00:44.647 [error] #PID<0.141066.0> running PinchflatWeb.Endpoint (connection #PID<0.141061.0>, stream id 5) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: HEAD /rsc ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /rsc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141066.0>, params: %{}, path_info: ["rsc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/rsc"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/rsc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6mQMLrPRqoTkAB6Ox"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /rsc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141061.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rsc", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 33512}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "host" => "pinchflat-server.tail1d371e.ts.net", "referer" => "http://pinchflat-server.tail1d371e.ts.net/rsc", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)", "x-forwarded-for" => "176.65.148.161", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "HEAD", body_length: 0, path_info: :undefined, qs: "", streamid: 5, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141066.0>, params: %{}, path_info: ["rsc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"referer", "http://pinchflat-server.tail1d371e.ts.net/rsc"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)"}, {"x-forwarded-for", "176.65.148.161"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], (truncated) 08:01:00.392 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:01:08.580 [info] {"source":"oban","duration":1485,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:01:38.582 [info] {"source":"oban","duration":1569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:01:47.898 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:02:00.395 [info] {"source":"oban","duration":1164,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:02:08.584 [info] {"source":"oban","duration":1709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:02:38.588 [info] {"source":"oban","duration":1899,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:02:47.941 [info] GET / 08:02:47.941 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:02:47.945 [debug] QUERY OK source="settings" db=2.7ms queue=0.2ms idle=1371.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:47.948 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=1374.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:02:47.949 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1358.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:02:47.951 [debug] QUERY OK source="media_items" db=0.8ms idle=379.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:02:47.952 [debug] QUERY OK source="media_items" db=0.6ms idle=357.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:02:47.953 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=7.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:47.954 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:47.956 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:47.960 [debug] QUERY OK source="tasks" db=0.9ms idle=8.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:02:47.962 [debug] QUERY OK source="media_items" db=0.6ms idle=9.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:02:47.964 [debug] QUERY OK source="media_items" db=1.3ms idle=9.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:02:47.966 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=11.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:02:47.983 [debug] QUERY OK source="media_items" db=0.7ms idle=25.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:02:47.986 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=23.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:02:47.988 [info] Sent 200 in 47ms 08:02:48.844 [info] GET /favicon.png 08:02:48.846 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=880.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:48.847 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=879.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:02:48.847 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:02:48.848 [error] #PID<0.141081.0> running PinchflatWeb.Endpoint (connection #PID<0.141078.0>, stream id 3) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /favicon.png ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 60028}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "3.92.76.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141081.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "3.92.76.5"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6te3wCjUNT4MAB6Rx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 60028}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "3.92.76.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 60028}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "3.92.76.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141081.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "3.92.76.5"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu6te3wCjUNT4MAB6Rx"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex" (truncated) 08:03:00.396 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:03:08.590 [info] {"source":"oban","duration":1817,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:03:14.409 [info] GET / 08:03:14.409 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:03:14.410 [debug] QUERY OK source="settings" db=0.5ms idle=790.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:03:14.411 [debug] QUERY OK source="media_profiles" db=0.6ms idle=791.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:03:14.412 [debug] QUERY OK source="sources" db=0.5ms idle=792.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:03:14.413 [debug] QUERY OK source="media_items" db=0.3ms idle=793.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:03:14.413 [debug] QUERY OK source="media_items" db=0.6ms idle=729.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:03:14.414 [debug] QUERY OK source="settings" db=0.4ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:03:14.416 [debug] QUERY OK source="settings" db=0.7ms queue=0.4ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:03:14.418 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:03:14.420 [debug] QUERY OK source="tasks" db=0.7ms idle=6.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:03:14.422 [debug] QUERY OK source="media_items" db=1.0ms idle=7.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:03:14.423 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=7.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:03:14.425 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:03:14.427 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=8.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:03:14.428 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=7.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:03:14.430 [info] Sent 200 in 21ms 08:03:16.037 [info] CONNECTED TO Phoenix.LiveView.Socket in 239ms Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CR8IVzgMJQ8YHCU2EXJaFhsFPhcEKygBcEL6JmuPyOSEd17u-bXfIgf5", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat-server.tail1d371e.ts.net/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat-server.tail1d371e.ts.net/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 08:03:17.308 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "jZDaraP_aSvsuCmc6gfqMLN4", "media_state" => "downloaded"} 08:03:17.310 [debug] QUERY OK source="media_items" db=0.6ms idle=1690.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:03:17.312 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=1691.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:03:17.314 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1694.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:03:17.314 [debug] Replied in 81ms 08:03:17.453 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "jZDaraP_aSvsuCmc6gfqMLN4", "media_state" => "pending"} 08:03:17.454 [debug] QUERY OK source="media_items" db=0.7ms idle=1414.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:03:17.457 [debug] QUERY OK source="media_items" db=1.9ms queue=0.3ms idle=413.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:03:17.457 [debug] Replied in 4ms 08:03:17.461 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "jZDaraP_aSvsuCmc6gfqMLN4"} 08:03:17.462 [debug] QUERY OK source="tasks" db=0.3ms idle=151.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:03:17.462 [debug] Replied in 1ms 08:03:17.466 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "jZDaraP_aSvsuCmc6gfqMLN4"} 08:03:17.466 [debug] Replied in 250µs 08:03:38.594 [info] {"source":"oban","duration":2141,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:04:00.398 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:04:08.596 [info] {"source":"oban","duration":1609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:04:38.599 [info] {"source":"oban","duration":1763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:05:00.400 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:05:08.602 [info] {"source":"oban","duration":1540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:05:38.604 [info] {"source":"oban","duration":1683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:06:00.401 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:06:08.608 [info] {"source":"oban","duration":2516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:06:38.611 [info] {"source":"oban","duration":1524,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:07:00.403 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:07:08.614 [info] {"source":"oban","duration":2757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:07:38.617 [info] {"source":"oban","duration":1748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:08:00.406 [info] {"source":"oban","duration":922,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:08:08.621 [info] {"source":"oban","duration":2260,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:08:38.623 [info] {"source":"oban","duration":1738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:00.407 [info] {"source":"oban","duration":725,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:09:08.626 [info] {"source":"oban","duration":1408,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:09:28.690 [info] HEAD / 08:09:28.690 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:09:28.691 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=1004.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:28.693 [debug] QUERY OK source="media_profiles" db=0.6ms idle=1005.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:09:28.694 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1007.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:09:28.696 [debug] QUERY OK source="media_items" db=1.0ms idle=1008.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:28.696 [debug] QUERY OK source="media_items" db=0.5ms idle=642.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:28.698 [debug] QUERY OK source="settings" db=0.9ms 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 [] 08:09:28.698 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:28.700 [debug] QUERY OK source="settings" db=0.6ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:28.703 [debug] QUERY OK source="tasks" db=0.6ms idle=6.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:09:28.704 [debug] QUERY OK source="media_items" db=0.2ms idle=7.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:28.723 [debug] QUERY OK source="media_items" db=19.0ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:09:28.726 [debug] QUERY OK source="sources" db=1.7ms idle=25.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:09:28.728 [debug] QUERY OK source="media_items" db=0.6ms idle=27.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:09:28.730 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=26.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:09:28.732 [info] Sent 200 in 42ms 08:09:29.895 [info] GET / 08:09:29.896 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:09:29.897 [debug] QUERY OK source="settings" db=1.0ms idle=1172.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:29.898 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=1171.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:09:29.900 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1170.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:09:29.901 [debug] QUERY OK source="media_items" db=0.9ms idle=1169.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:29.902 [debug] QUERY OK source="media_items" db=0.7ms idle=844.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:29.903 [debug] QUERY OK source="settings" db=0.4ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:29.904 [debug] QUERY OK source="settings" db=0.5ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:09:29.905 [debug] QUERY OK source="settings" db=0.8ms queue=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 [] 08:09:29.908 [debug] QUERY OK source="tasks" db=0.9ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:09:29.909 [debug] QUERY OK source="media_items" db=0.6ms idle=6.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:09:29.911 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=6.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:09:29.913 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:09:29.916 [debug] QUERY OK source="media_items" db=1.2ms idle=9.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:09:29.919 [debug] QUERY OK source="media_items" db=2.1ms idle=8.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] 08:09:29.921 [info] Sent 200 in 26ms 08:09:38.628 [info] {"source":"oban","duration":1578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:00.409 [info] {"source":"oban","duration":772,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:10:08.631 [info] {"source":"oban","duration":1258,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:38.633 [info] {"source":"oban","duration":1788,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:10:48.011 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:11:00.411 [info] {"source":"oban","duration":515,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:11:08.637 [info] {"source":"oban","duration":2299,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:11:38.640 [info] {"source":"oban","duration":1952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:11:48.019 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:12:00.413 [info] {"source":"oban","duration":411,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:12:08.642 [info] {"source":"oban","duration":1546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:12:38.645 [info] {"source":"oban","duration":2364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:00.415 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:13:08.647 [info] {"source":"oban","duration":1514,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:13:38.650 [info] {"source":"oban","duration":1462,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:00.418 [info] {"source":"oban","duration":746,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:14:08.653 [info] {"source":"oban","duration":1951,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:14:38.655 [info] {"source":"oban","duration":1659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:00.419 [info] {"source":"oban","duration":570,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:15:08.658 [info] {"source":"oban","duration":1746,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:15:38.661 [info] {"source":"oban","duration":1547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:16:00.421 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:16:08.790 [info] {"source":"oban","duration":127056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 08:16:38.793 [info] {"source":"oban","duration":1957,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:00.422 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:17:08.795 [info] {"source":"oban","duration":1438,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:38.798 [info] {"source":"oban","duration":1875,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:17:56.480 [info] {"args":{"id":1},"id":3235,"meta":{},"system_time":1773217076478940600,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:17:56.482 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=1791.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:17:56.484 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=1026.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:56.486 [debug] QUERY OK source="media_items" db=1.6ms idle=795.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")))) [1] 08:17:56.488 [debug] QUERY OK source="media_items" db=1.1ms idle=15.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 08:17:56.489 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:17:56.490 [debug] QUERY OK source="settings" db=0.3ms queue=0.3ms idle=7.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:56.548 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:17:56.549 [debug] Current batch of media processed. Will check again in 1000ms 08:17:56.549 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=64.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:56.550 [debug] QUERY OK source="settings" db=0.2ms idle=63.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:56.551 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=62.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:17:56.552 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/6e/52/6e52e90d41ef698cf2e499e99fb7e71297eeb9a1b870cc90da8b2d533c7f0c1d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:17:57.550 [debug] Current batch of media processed. Will check again in 1000ms 08:17:58.552 [debug] Current batch of media processed. Will check again in 1000ms 08:17:59.553 [debug] Current batch of media processed. Will check again in 1000ms 08:18:00.423 [info] {"source":"oban","duration":310,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:18:00.555 [debug] Current batch of media processed. Will check again in 1000ms 08:18:01.556 [debug] Current batch of media processed. Will check again in 1000ms 08:18:02.557 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 08:18:02.559 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=869.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:02.561 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=871.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:02.562 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=872.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 08:18:02.616 [debug] QUERY OK source="media_items" db=52.1ms queue=0.2ms idle=875.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "39cf8d60-30d9-40fe-be5b-c94e842d17cc", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 08:18:02Z], ~U[2026-03-11 08:18:02Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 08:18:02.618 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=131.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:02.620 [debug] QUERY OK source="media_profiles" db=1.1ms idle=59.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:02.621 [debug] QUERY OK source="media_items" db=1.1ms idle=59.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 [37332] 08:18:02.622 [debug] Current batch of media processed. Will check again in 1000ms 08:18:03.623 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", "id" => "tHL82zmafoM", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 08:18:03.626 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=1007.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:03.628 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1008.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:03.630 [debug] QUERY OK source="media_items" db=1.6ms idle=1008.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:03.670 [debug] QUERY OK source="media_items" db=38.8ms idle=1009.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "0e18a71d-7b79-4d94-9a6c-5d83f46dbcba", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:03Z], ~U[2026-03-11 08:18:03Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:03.672 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=182.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:03.674 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=46.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:03.676 [debug] QUERY OK source="media_items" db=1.1ms idle=47.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 [36910] 08:18:03.676 [debug] Current batch of media processed. Will check again in 1000ms 08:18:04.677 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "9itQHfB7DOU", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 08:18:04.679 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1008.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:04.680 [debug] QUERY OK source="sources" db=1.1ms idle=1007.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:04.682 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1006.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:04.713 [debug] QUERY OK source="media_items" db=29.3ms idle=1007.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "de5cb9c8-eda8-4f14-8d4e-2fbe3a161ca0", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:04Z], ~U[2026-03-11 08:18:04Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:04.714 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=222.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:04.715 [debug] QUERY OK source="media_profiles" db=0.7ms idle=35.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:04.718 [debug] QUERY OK source="media_items" db=2.0ms idle=35.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 [36578] 08:18:04.718 [debug] Current batch of media processed. Will check again in 1000ms 08:18:05.719 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", "id" => "776wd4rgME8", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 08:18:05.721 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1007.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:05.722 [debug] QUERY OK source="sources" db=1.1ms 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" = ?) [1] 08:18:05.724 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=1007.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:05.951 [debug] QUERY OK source="media_items" db=226.5ms idle=1006.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "6fa2d2d2-b706-4d61-b864-128b338dce1d", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:05Z], ~U[2026-03-11 08:18:05Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:05.952 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=458.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:05.954 [debug] QUERY OK source="media_profiles" db=0.9ms idle=232.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:05.955 [debug] QUERY OK source="media_items" db=0.8ms idle=232.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 [36579] 08:18:05.956 [debug] Current batch of media processed. Will check again in 1000ms 08:18:06.957 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", "id" => "pdsPOqKjcr4", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 08:18:06.960 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=1006.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:06.962 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=1007.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:06.963 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1008.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 08:18:06.989 [debug] QUERY OK source="media_items" db=24.3ms idle=1008.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "8ec45d55-0a2a-4000-a5e9-17d723aa4887", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 08:18:06Z], ~U[2026-03-11 08:18:06Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 08:18:06.990 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=492.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:06.992 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=30.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:06.993 [debug] QUERY OK source="media_items" db=0.6ms idle=30.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 [36580] 08:18:06.994 [debug] Current batch of media processed. Will check again in 1000ms 08:18:08.010 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", "id" => "svv5O1pBDuI", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 08:18:08.011 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1022.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:08.013 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1021.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:08.014 [debug] QUERY OK source="media_items" db=1.2ms idle=1021.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:08.102 [debug] QUERY OK source="media_items" db=86.3ms idle=1021.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "e61c683a-2fc4-46c7-ae48-388ff9000062", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:08Z], ~U[2026-03-11 08:18:08Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:08.103 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=603.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:08.105 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=92.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:08.157 [debug] QUERY OK source="media_items" db=51.1ms queue=0.1ms idle=93.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 [36581] 08:18:08.158 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", "id" => "PBciEuxYu9Y", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 08:18:08.159 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=144.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:08.161 [debug] QUERY OK source="sources" db=0.7ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:08.162 [debug] QUERY OK source="media_items" db=0.7ms idle=57.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:08.222 [debug] QUERY OK source="media_items" db=58.5ms idle=57.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "485bcc71-efbb-4d25-bc57-7236825ca6df", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:08Z], ~U[2026-03-11 08:18:08Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:08.223 [debug] QUERY OK source="sources" db=0.9ms idle=65.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:08.224 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=64.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:08.226 [debug] QUERY OK source="media_items" db=0.5ms idle=64.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 [36582] 08:18:08.226 [debug] Current batch of media processed. Will check again in 1000ms 08:18:08.802 [info] {"source":"oban","duration":2941,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:18:09.227 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", "id" => "TJek4wUSGEA", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 08:18:09.229 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1004.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:09.232 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=1005.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:09.234 [debug] QUERY OK source="media_items" db=1.9ms idle=1006.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:09.254 [debug] QUERY OK source="media_items" db=18.5ms idle=733.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "14fc0ca9-dcc9-423e-a974-7eae60ea8f25", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:09Z], ~U[2026-03-11 08:18:09Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:09.256 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=452.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:09.257 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=27.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:09.260 [debug] QUERY OK source="media_items" db=1.6ms idle=26.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 [36583] 08:18:09.260 [debug] Current batch of media processed. Will check again in 1000ms 08:18:10.261 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", "id" => "06w596oNzAw", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 08:18:10.263 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1008.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:10.264 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:10.265 [debug] QUERY OK source="media_items" db=0.6ms idle=1007.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:10.296 [debug] QUERY OK source="media_items" db=28.6ms idle=1006.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "817aee09-0a1a-42f0-b8b1-c944c3fcfe50", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:10Z], ~U[2026-03-11 08:18:10Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:10.298 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=792.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:10.299 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=34.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:18:10.302 [debug] QUERY OK source="media_items" db=0.7ms queue=0.6ms idle=35.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 [36439] 08:18:10.302 [debug] Current batch of media processed. Will check again in 1000ms 08:18:11.262 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/6e/52/6e52e90d41ef698cf2e499e99fb7e71297eeb9a1b870cc90da8b2d533c7f0c1d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:18:11.268 [debug] Gracefully stopping file follower 08:18:11.270 [debug] QUERY OK source="sources" db=1.9ms idle=973.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:18:11.271 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=972.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.272 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=972.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 00:00:00Z], 1] 08:18:11.286 [debug] QUERY OK source="media_items" db=13.1ms idle=971.1ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "6e6054b4-4a84-4a54-bdf7-3109b3d0cecc", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 00:00:00Z]] 08:18:11.288 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=780.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.290 [debug] QUERY OK source="media_items" db=1.0ms queue=0.4ms idle=18.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:11.310 [debug] QUERY OK source="media_items" db=19.1ms idle=19.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "6da4fe48-45c0-48ef-b331-1ebbce61f789", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:11.312 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=38.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.313 [debug] QUERY OK source="media_items" db=1.0ms idle=26.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:11.343 [debug] QUERY OK source="media_items" db=28.5ms idle=26.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "278484fc-121a-4a5b-8bbf-7db326dfe893", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:11.345 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=54.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.347 [debug] QUERY OK source="media_items" db=1.0ms idle=35.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:11.370 [debug] QUERY OK source="media_items" db=22.1ms queue=0.1ms idle=35.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "60dc46d4-610e-466c-ba0c-77401d794c68", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:11.372 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.374 [debug] QUERY OK source="media_items" db=1.1ms idle=29.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 00:00:00Z], 1] 08:18:11.402 [debug] QUERY OK source="media_items" db=27.3ms idle=29.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "0a6e6deb-08e2-4e99-8d4b-f9b904f98c5e", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, false, 1, [], 2, ~U[2026-02-19 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [\u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.NA", false, 1, ~U[2026-02-19 00:00:00Z]] 08:18:11.404 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=56.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.405 [debug] QUERY OK source="media_items" db=1.1ms idle=34.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:11.434 [debug] QUERY OK source="media_items" db=27.2ms idle=33.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "296fd48e-4d0b-4851-899e-dad123b75f62", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ \u202A@Maqamat_with_Bakeer\u202C ]\n\u00A0\u00A0\u00A0/\u00A0@maqamat_with_bakeer\u00A0\u00A0\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", nil, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:11.435 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=60.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.437 [debug] QUERY OK source="media_items" db=1.5ms queue=0.2ms idle=34.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 00:00:00Z], 1] 08:18:11.457 [debug] QUERY OK source="media_items" db=17.8ms idle=34.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "c6b0ffc0-172a-441d-ae39-1233b7b5221b", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, false, 1, [], 4, ~U[2026-02-21 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.NA", false, 1, ~U[2026-02-21 00:00:00Z]] 08:18:11.458 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=52.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.459 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=25.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:11.475 [debug] QUERY OK source="media_items" db=14.7ms idle=24.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "c7dc52a4-8a7f-4062-9d0e-7a1fdb60504b", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", nil, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:11.477 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=38.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.479 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=21.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:11.509 [debug] QUERY OK source="media_items" db=29.4ms idle=20.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "64054762-d14d-43ce-9934-8595d628c6c1", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", nil, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:11.512 [debug] QUERY OK source="sources" db=0.4ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:18:11.514 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=36.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 00:00:00Z], 1] 08:18:11.520 [debug] QUERY OK source="media_items" db=5.0ms queue=0.1ms idle=35.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "97c3fffb-a0cf-4cd0-84e9-323bb633ae06", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, false, 1, [], 4, ~U[2026-02-20 00:00:00Z], ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", nil, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.NA", false, 1, ~U[2026-02-20 00:00:00Z]] 08:18:11.521 [debug] QUERY OK source="sources" db=1.1ms idle=11.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z], 1] 08:18:11.523 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=11.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")))) [1] 08:18:11.524 [debug] QUERY OK source="media_items" db=0.6ms idle=11.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")))) [1] 08:18:11.525 [debug] QUERY OK source="media_items" db=0.2ms queue=0.3ms idle=11.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 08:18:11.534 [debug] QUERY OK source="tasks" db=1.9ms queue=0.1ms idle=8.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3236, 1, ~U[2026-03-11 08:18:11Z], ~U[2026-03-11 08:18:11Z]] 08:18:11.556 [info] {"args":{"id":1},"id":3235,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":15055491,"event":"job:stop","queue_time":107877,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:18:38.805 [info] {"source":"oban","duration":2005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:00.424 [info] {"source":"oban","duration":606,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:19:08.819 [info] {"source":"oban","duration":1685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:38.823 [info] {"source":"oban","duration":2273,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:19:48.080 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:20:00.426 [info] {"source":"oban","duration":349,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:20:08.825 [info] {"source":"oban","duration":1405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:20:38.827 [info] {"source":"oban","duration":1442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:00.428 [info] {"source":"oban","duration":558,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:21:08.830 [info] {"source":"oban","duration":2319,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:38.833 [info] {"source":"oban","duration":1898,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:21:48.095 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:22:00.430 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:22:08.836 [info] {"source":"oban","duration":1583,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:22:38.839 [info] {"source":"oban","duration":1502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:23:00.432 [info] {"source":"oban","duration":511,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:23:08.842 [info] {"source":"oban","duration":1584,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:23:38.844 [info] {"source":"oban","duration":1634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:24:00.434 [info] {"source":"oban","duration":499,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:24:08.848 [info] {"source":"oban","duration":2068,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:24:38.850 [info] {"source":"oban","duration":1403,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:00.436 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:25:08.853 [info] {"source":"oban","duration":1997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:38.628 [info] GET / 08:25:38.629 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:25:38.630 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=1940.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:38.632 [debug] QUERY OK source="media_profiles" db=0.9ms idle=1941.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:25:38.633 [debug] QUERY OK source="sources" db=0.5ms queue=0.3ms idle=1943.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:25:38.634 [debug] QUERY OK source="media_items" db=0.9ms idle=960.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:25:38.635 [debug] QUERY OK source="media_items" db=0.8ms idle=945.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:25:38.637 [debug] QUERY OK source="settings" db=1.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:38.638 [debug] QUERY OK source="settings" db=0.9ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:38.639 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:38.642 [debug] QUERY OK source="tasks" db=0.6ms idle=7.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:25:38.644 [debug] QUERY OK source="media_items" db=0.7ms idle=8.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:25:38.645 [debug] QUERY OK source="media_items" db=1.0ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:25:38.646 [debug] QUERY OK source="sources" db=0.4ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:25:38.649 [debug] QUERY OK source="media_items" db=0.9ms idle=8.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:25:38.651 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=7.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:25:38.653 [info] Sent 200 in 24ms 08:25:38.855 [info] {"source":"oban","duration":1837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:25:39.984 [info] GET /favicon.png 08:25:39.986 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1129.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:39.987 [debug] QUERY OK source="settings" db=1.0ms idle=309.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:25:39.988 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 08:25:39.989 [error] #PID<0.141239.0> running PinchflatWeb.Endpoint (connection #PID<0.141236.0>, stream id 3) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /favicon.png ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141236.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 57140}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "34.236.134.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141239.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "34.236.134.5"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu79SxFFRNbeVkAB1zi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141236.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 57140}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "34.236.134.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.141236.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 57140}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "34.236.134.5", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 3, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.141239.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "34.236.134.5"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJu79SxFFRNbeVkAB1zi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_w (truncated) 08:26:00.438 [info] {"source":"oban","duration":594,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:26:08.859 [info] {"source":"oban","duration":2045,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:26:22.717 [info] GET / 08:26:22.717 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:26:22.719 [debug] QUERY OK source="settings" db=1.0ms idle=1028.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:22.720 [debug] QUERY OK source="media_profiles" db=0.4ms idle=946.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:26:22.721 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=31.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:26:22.722 [debug] QUERY OK source="media_items" db=1.2ms idle=31.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:26:22.722 [debug] QUERY OK source="media_items" db=0.2ms idle=33.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:26:22.723 [debug] QUERY OK source="settings" db=0.6ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:22.724 [debug] QUERY OK source="settings" db=0.3ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:22.725 [debug] QUERY OK source="settings" db=0.4ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:26:22.728 [debug] QUERY OK source="tasks" db=1.1ms queue=0.2ms idle=4.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:26:22.729 [debug] QUERY OK source="media_items" db=0.3ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:26:22.731 [debug] QUERY OK source="media_items" db=1.3ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:26:22.732 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:26:22.734 [debug] QUERY OK source="media_items" db=0.7ms idle=8.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:26:22.764 [debug] QUERY OK source="media_items" db=29.6ms queue=0.1ms idle=6.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:26:22.766 [info] Sent 200 in 49ms 08:26:38.862 [info] {"source":"oban","duration":2071,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:00.440 [info] {"source":"oban","duration":459,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:27:08.864 [info] {"source":"oban","duration":1654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:27:38.867 [info] {"source":"oban","duration":1683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:00.442 [info] {"source":"oban","duration":630,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:28:08.871 [info] {"source":"oban","duration":2012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:28:38.873 [info] {"source":"oban","duration":1569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:00.444 [info] {"source":"oban","duration":403,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:29:04.547 [info] GET / 08:29:04.547 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:29:04.549 [debug] QUERY OK source="settings" db=0.7ms idle=1859.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:04.550 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=1860.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:29:04.552 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=1357.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:29:04.555 [debug] QUERY OK source="media_items" db=2.1ms idle=863.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:04.556 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=359.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:04.557 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:04.558 [debug] QUERY OK source="settings" db=0.2ms idle=7.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:04.560 [debug] QUERY OK source="settings" db=0.6ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:04.563 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=8.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"] 08:29:04.565 [debug] QUERY OK source="media_items" db=0.7ms idle=9.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:04.567 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=8.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:29:04.570 [debug] QUERY OK source="sources" db=1.2ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:04.573 [debug] QUERY OK source="media_items" db=1.0ms idle=11.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:29:04.575 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=10.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:29:04.579 [info] Sent 200 in 31ms 08:29:08.875 [info] {"source":"oban","duration":1726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:29:19.958 [info] GET / 08:29:19.958 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:29:19.961 [debug] QUERY OK source="settings" db=1.8ms queue=0.3ms idle=728.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:19.972 [debug] QUERY OK source="media_profiles" db=9.9ms queue=0.1ms idle=272.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:29:19.973 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=283.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:29:19.975 [debug] QUERY OK source="media_items" db=1.4ms idle=284.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:19.976 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=286.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:19.978 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=15.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:19.980 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:19.983 [debug] QUERY OK source="settings" db=1.8ms 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 [] 08:29:19.987 [debug] QUERY OK source="tasks" db=1.6ms idle=9.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:29:19.989 [debug] QUERY OK source="media_items" db=0.4ms queue=0.3ms idle=11.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:29:20.023 [debug] QUERY OK source="media_items" db=34.2ms idle=10.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:29:20.025 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=44.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:20.028 [debug] QUERY OK source="media_items" db=0.6ms queue=0.3ms idle=44.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:29:20.031 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=42.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:29:20.033 [info] Sent 200 in 74ms 08:29:22.808 [info] GET /settings 08:29:22.834 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 08:29:22.927 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=1237.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:23.041 [debug] QUERY OK source="settings" db=0.5ms queue=0.3ms idle=1316.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:23.043 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1352.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:23.044 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1354.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:23.630 [info] Sent 200 in 822ms 08:29:26.027 [info] GET /sources/1 08:29:26.027 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 08:29:26.040 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1350.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:26.042 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.1ms idle=1351.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:29:28.111 [debug] QUERY OK source="tasks" db=2068.3ms queue=0.1ms idle=1353.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 08:29:28.140 [debug] QUERY OK source="oban_jobs" db=28.0ms queue=0.1ms idle=1423.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" = ?) [3236] 08:29:28.201 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=526.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:28.203 [debug] QUERY OK source="settings" db=1.5ms idle=513.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:28.205 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=515.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:28.498 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=385.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:28.562 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=420.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 08:29:28.596 [debug] QUERY OK source="media_items" db=3.1ms queue=0.2ms idle=419.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 08:29:28.603 [debug] QUERY OK source="sources" db=3.1ms queue=0.1ms idle=396.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:28.676 [debug] QUERY OK source="media_items" db=3.0ms queue=0.5ms idle=467.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 08:29:28.699 [debug] QUERY OK source="media_items" db=22.3ms queue=0.3ms idle=114.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 08:29:28.708 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:29:28.711 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=107.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 08:29:28.746 [debug] QUERY OK source="media_items" db=1.1ms queue=0.3ms idle=68.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 08:29:28.750 [info] Sent 200 in 2723ms 08:29:29.332 [info] GET /app_info 08:29:29.333 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 08:29:29.349 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=648.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:29.351 [debug] QUERY OK source="settings" db=0.7ms queue=0.9ms idle=648.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:29.352 [debug] QUERY OK source="settings" db=0.4ms idle=643.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:29.354 [debug] QUERY OK source="settings" db=0.5ms idle=642.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:29.355 [debug] QUERY OK source="settings" db=0.9ms idle=608.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:29.357 [info] Sent 200 in 25ms 08:29:31.644 [info] GET /sources 08:29:31.644 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 08:29:31.652 [debug] QUERY OK source="settings" db=0.4ms idle=962.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:31.653 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=963.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:31.656 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=966.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:31.659 [debug] QUERY OK source="settings" db=0.2ms idle=969.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:31.705 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=997.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:31.790 [debug] QUERY OK source="sources" db=20.3ms queue=0.2ms idle=117.7ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 08:29:31.829 [debug] QUERY OK source="sources" db=27.3ms queue=0.2ms idle=145.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 08:29:32.155 [info] Sent 200 in 510ms 08:29:37.259 [info] GET /media_profiles 08:29:37.260 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 08:29:37.373 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.3ms idle=1668.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", (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" [] 08:29:37.458 [debug] QUERY OK source="settings" db=0.9ms queue=2.4ms idle=1750.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:37.460 [debug] QUERY OK source="settings" db=0.6ms queue=0.8ms idle=1620.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:37.462 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=756.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:29:37.528 [info] Sent 200 in 268ms 08:29:38.879 [info] {"source":"oban","duration":2207,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:00.446 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:30:08.882 [info] {"source":"oban","duration":1884,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:38.884 [info] {"source":"oban","duration":1663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:30:48.172 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:31:00.448 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:31:08.888 [info] {"source":"oban","duration":2468,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:38.890 [info] {"source":"oban","duration":1258,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:31:48.179 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:32:00.450 [info] {"source":"oban","duration":702,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:32:08.892 [info] {"source":"oban","duration":1740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:38.895 [info] {"source":"oban","duration":1694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:32:47.292 [info] GET / 08:32:47.292 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:32:47.293 [debug] QUERY OK source="settings" db=0.6ms idle=975.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:47.294 [debug] QUERY OK source="media_profiles" db=0.4ms idle=588.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:32:47.295 [debug] QUERY OK source="sources" db=0.3ms idle=589.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:32:47.295 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=590.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:32:47.296 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=590.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:32:47.297 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:47.297 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:47.299 [debug] QUERY OK source="settings" db=0.4ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:32:47.302 [debug] QUERY OK source="tasks" db=1.5ms idle=4.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:32:47.303 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:32:47.305 [debug] QUERY OK source="media_items" db=1.0ms queue=0.5ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:32:47.306 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:32:47.324 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=20.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"))) [] 08:32:47.327 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=22.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:32:47.329 [info] Sent 200 in 37ms 08:33:00.452 [info] {"source":"oban","duration":766,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:33:08.899 [info] {"source":"oban","duration":1883,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:33:38.902 [info] {"source":"oban","duration":2679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:00.454 [info] {"source":"oban","duration":493,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:34:08.905 [info] {"source":"oban","duration":1525,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:34:38.907 [info] {"source":"oban","duration":1536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:00.456 [info] {"source":"oban","duration":481,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:35:03.230 [info] GET / 08:35:03.231 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:35:03.232 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1526.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:03.233 [debug] QUERY OK source="media_profiles" db=0.7ms idle=583.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:35:03.234 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=528.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:35:03.235 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=529.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:35:03.236 [debug] QUERY OK source="media_items" db=0.4ms idle=530.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:35:03.238 [debug] QUERY OK source="settings" db=1.2ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:03.239 [debug] QUERY OK source="settings" db=0.4ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:35:03.241 [debug] QUERY OK source="settings" db=1.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 [] 08:35:03.243 [debug] QUERY OK source="tasks" db=0.6ms idle=6.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:35:03.245 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=7.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:35:03.247 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=6.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:35:03.248 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:35:03.307 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=34.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"))) [] 08:35:03.387 [debug] QUERY OK source="media_items" db=2.3ms queue=1.5ms idle=136.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:35:03.390 [info] Sent 200 in 159ms 08:35:08.909 [info] {"source":"oban","duration":1793,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:35:38.912 [info] {"source":"oban","duration":1505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:00.458 [info] {"source":"oban","duration":424,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:36:08.915 [info] {"source":"oban","duration":1896,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:36:33.250 [info] GET / 08:36:33.250 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:36:33.252 [debug] QUERY OK source="settings" db=0.8ms idle=545.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:33.253 [debug] QUERY OK source="media_profiles" db=0.5ms idle=546.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:36:33.254 [debug] QUERY OK source="sources" db=0.5ms queue=0.5ms idle=547.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:36:33.255 [debug] QUERY OK source="media_items" db=0.7ms idle=548.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:36:33.256 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=386.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:36:33.258 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:33.259 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:36:33.261 [debug] QUERY OK source="settings" db=0.6ms 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 [] 08:36:33.263 [debug] QUERY OK source="tasks" db=0.5ms queue=0.2ms idle=7.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 08:36:33.265 [debug] QUERY OK source="media_items" db=0.6ms idle=7.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:36:33.267 [debug] QUERY OK source="media_items" db=1.2ms queue=0.6ms idle=7.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:36:33.270 [debug] QUERY OK source="sources" db=1.6ms queue=0.2ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:36:33.274 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=11.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:36:33.277 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:36:33.279 [info] Sent 200 in 29ms 08:36:38.919 [info] {"source":"oban","duration":1998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:00.459 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:37:08.921 [info] {"source":"oban","duration":1561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:37:38.924 [info] {"source":"oban","duration":1546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:00.461 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:38:08.927 [info] {"source":"oban","duration":1442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:38:38.929 [info] {"source":"oban","duration":1842,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:00.463 [info] {"source":"oban","duration":488,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:39:08.932 [info] {"source":"oban","duration":1560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:39:38.936 [info] {"source":"oban","duration":2392,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:00.465 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:40:08.938 [info] {"source":"oban","duration":1449,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:38.941 [info] {"source":"oban","duration":1850,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:40:48.237 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:41:00.467 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:41:08.945 [info] {"source":"oban","duration":2394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:38.947 [info] {"source":"oban","duration":1759,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:41:48.245 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:42:00.468 [info] {"source":"oban","duration":408,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:42:08.951 [info] {"source":"oban","duration":1872,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:42:31.291 [info] GET / 08:42:31.292 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 08:42:31.293 [debug] QUERY OK source="settings" db=0.4ms idle=1418.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:31.294 [debug] QUERY OK source="media_profiles" db=0.4ms idle=454.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 08:42:31.296 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=454.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 08:42:31.297 [debug] QUERY OK source="media_items" db=0.7ms queue=0.5ms idle=456.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:42:31.298 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=420.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:42:31.300 [debug] QUERY OK source="settings" db=1.2ms queue=0.1ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:31.302 [debug] QUERY OK source="settings" db=0.8ms queue=0.6ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:31.307 [debug] QUERY OK source="settings" db=2.8ms queue=0.3ms idle=8.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:42:31.313 [debug] QUERY OK source="tasks" db=2.2ms queue=0.6ms idle=13.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"] 08:42:31.316 [debug] QUERY OK source="media_items" db=0.7ms idle=16.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 08:42:31.319 [debug] QUERY OK source="media_items" db=2.7ms queue=0.1ms idle=16.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 08:42:31.322 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=17.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:42:31.325 [debug] QUERY OK source="media_items" db=0.7ms idle=16.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 08:42:31.327 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=11.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] 08:42:31.329 [info] Sent 200 in 37ms 08:42:38.953 [info] {"source":"oban","duration":1698,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:00.470 [info] {"source":"oban","duration":627,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:43:08.956 [info] {"source":"oban","duration":1653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:43:38.960 [info] {"source":"oban","duration":2067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:00.472 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:44:08.962 [info] {"source":"oban","duration":1842,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:44:38.966 [info] {"source":"oban","duration":1962,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:45:00.474 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:45:08.968 [info] {"source":"oban","duration":1566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:45:38.972 [info] {"source":"oban","duration":2049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:00.476 [info] {"source":"oban","duration":600,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:46:08.974 [info] {"source":"oban","duration":1844,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:46:38.977 [info] {"source":"oban","duration":1485,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:00.478 [info] {"source":"oban","duration":453,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:47:08.980 [info] {"source":"oban","duration":1988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:47:38.983 [info] {"source":"oban","duration":1954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:48:00.480 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:48:08.986 [info] {"source":"oban","duration":2641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:48:11.722 [info] {"args":{"id":1},"id":3236,"meta":{},"system_time":1773218891721530974,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:48:11.724 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=882.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:11.725 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=883.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:11.729 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=885.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")))) [1] 08:48:11.731 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=14.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 08:48:11.732 [debug] QUERY OK source="media_profiles" db=0.8ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:11.733 [debug] QUERY OK source="settings" db=0.2ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:11.810 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 08:48:11.811 [debug] Current batch of media processed. Will check again in 1000ms 08:48:11.811 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=84.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:11.812 [debug] QUERY OK source="settings" db=0.6ms idle=82.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:11.813 [debug] QUERY OK source="settings" db=0.8ms idle=81.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 08:48:11.815 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ae/a9/aea91954e2d5be0f7d2c6fbaf4095d19ba7195500f121207bd3970e98ad56644.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 08:48:12.812 [debug] Current batch of media processed. Will check again in 1000ms 08:48:13.813 [debug] Current batch of media processed. Will check again in 1000ms 08:48:14.814 [debug] Current batch of media processed. Will check again in 1000ms 08:48:15.815 [debug] Current batch of media processed. Will check again in 1000ms 08:48:16.816 [debug] Current batch of media processed. Will check again in 1000ms 08:48:17.817 [debug] Current batch of media processed. Will check again in 1000ms 08:48:18.818 [debug] Current batch of media processed. Will check again in 1000ms 08:48:19.819 [debug] Current batch of media processed. Will check again in 1000ms 08:48:20.820 [debug] Current batch of media processed. Will check again in 1000ms 08:48:21.873 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 08:48:21.902 [debug] QUERY OK source="sources" db=28.2ms queue=0.1ms idle=1032.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:21.904 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1061.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:21.986 [debug] QUERY OK source="media_items" db=81.7ms queue=0.1ms idle=1063.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 08:48:22.162 [debug] QUERY OK source="media_items" db=163.0ms queue=0.1ms idle=1098.5ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "0d8f135c-0e7a-453a-87fa-6ee7b5fb003a", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 08:48:21Z], ~U[2026-03-11 08:48:21Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 08:48:22.165 [debug] QUERY OK source="sources" db=1.6ms queue=0.9ms idle=260.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:22.189 [debug] QUERY OK source="media_profiles" db=22.0ms queue=1.2ms idle=261.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:22.191 [debug] QUERY OK source="media_items" db=0.6ms queue=0.3ms idle=285.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 [37332] 08:48:22.191 [debug] Current batch of media processed. Will check again in 1000ms 08:48:23.192 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 08:48:23.194 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1031.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:23.196 [debug] QUERY OK source="sources" db=1.1ms idle=1029.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:23.273 [debug] QUERY OK source="media_items" db=76.3ms queue=0.4ms idle=1007.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 08:48:23.295 [debug] QUERY OK source="media_items" db=20.5ms idle=1083.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "c426a3fe-a66a-4b6a-9690-23076a83363a", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 08:48:23Z], ~U[2026-03-11 08:48:23Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 08:48:23.297 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=388.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:23.300 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.5ms idle=104.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:23.345 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=148.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 [36910] 08:48:23.346 [debug] Current batch of media processed. Will check again in 1000ms 08:48:24.347 [debug] Current batch of media processed. Will check again in 1000ms 08:48:25.348 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 08:48:25.350 [debug] QUERY OK source="sources" db=0.6ms idle=475.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:25.351 [debug] QUERY OK source="sources" db=0.8ms idle=476.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:25.353 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=477.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 08:48:25.553 [debug] QUERY OK source="media_items" db=198.4ms idle=479.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "f160a52b-5e78-4228-ae19-ebfbb7561d85", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 08:48:25Z], ~U[2026-03-11 08:48:25Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 08:48:25.554 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=641.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:25.556 [debug] QUERY OK source="media_profiles" db=1.1ms idle=205.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:25.560 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=208.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 [36578] 08:48:25.561 [debug] Current batch of media processed. Will check again in 1000ms 08:48:26.562 [debug] Current batch of media processed. Will check again in 1000ms 08:48:27.564 [debug] Current batch of media processed. Will check again in 1000ms 08:48:28.565 [debug] Current batch of media processed. Will check again in 1000ms 08:48:29.566 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 08:48:29.568 [debug] QUERY OK source="sources" db=0.7ms 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 (?)) [1] 08:48:29.569 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=694.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:29.571 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=695.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 08:48:29.628 [debug] QUERY OK source="media_items" db=56.2ms idle=697.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "c85a28eb-1af9-4918-b6b8-de5a188b82b7", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 08:48:29Z], ~U[2026-03-11 08:48:29Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 08:48:29.630 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=703.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:29.632 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=62.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:29.633 [debug] QUERY OK source="media_items" db=0.9ms idle=63.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 [36579] 08:48:29.633 [debug] Current batch of media processed. Will check again in 1000ms 08:48:30.635 [debug] Current batch of media processed. Will check again in 1000ms 08:48:31.637 [debug] Current batch of media processed. Will check again in 1000ms 08:48:32.639 [debug] Current batch of media processed. Will check again in 1000ms 08:48:33.640 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 08:48:33.642 [debug] QUERY OK source="sources" db=0.9ms 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 (?)) [1] 08:48:33.643 [debug] QUERY OK source="sources" db=0.5ms idle=768.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:33.644 [debug] QUERY OK source="media_items" db=0.6ms queue=0.4ms idle=769.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 08:48:33.733 [debug] QUERY OK source="media_items" db=87.5ms idle=770.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "e975b0dd-6427-46c4-86d9-47a75874c1cb", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 08:48:33Z], ~U[2026-03-11 08:48:33Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 08:48:33.734 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=795.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:33.736 [debug] QUERY OK source="media_profiles" db=1.0ms idle=92.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:33.737 [debug] QUERY OK source="media_items" db=0.8ms idle=93.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 [36580] 08:48:33.738 [debug] Current batch of media processed. Will check again in 1000ms 08:48:34.739 [debug] Current batch of media processed. Will check again in 1000ms 08:48:35.740 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 08:48:35.742 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=867.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:35.743 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=868.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:35.745 [debug] QUERY OK source="media_items" db=0.7ms idle=870.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 08:48:35.793 [debug] QUERY OK source="media_items" db=46.9ms idle=871.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "dfc644a5-c64d-4c7e-af57-c55132a1742f", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 08:48:35Z], ~U[2026-03-11 08:48:35Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 08:48:35.795 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=850.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:35.796 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=53.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:35.798 [debug] QUERY OK source="media_items" db=0.8ms idle=53.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 [36581] 08:48:35.799 [debug] Current batch of media processed. Will check again in 1000ms 08:48:36.800 [debug] Current batch of media processed. Will check again in 1000ms 08:48:37.803 [debug] Current batch of media processed. Will check again in 1000ms 08:48:38.805 [debug] Current batch of media processed. Will check again in 1000ms 08:48:39.285 [info] {"source":"oban","duration":297768,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 08:48:39.806 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 08:48:39.808 [debug] QUERY OK source="sources" db=0.8ms 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" IN (?)) [1] 08:48:39.809 [debug] QUERY OK source="sources" db=0.7ms queue=0.3ms idle=934.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:39.811 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=936.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 08:48:39.834 [debug] QUERY OK source="media_items" db=21.5ms idle=856.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "bfd99ec4-1a27-45ba-9fe2-31d2ab4e004c", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 08:48:39Z], ~U[2026-03-11 08:48:39Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 08:48:39.880 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=593.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:39.882 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=72.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:39.883 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=72.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 [36582] 08:48:39.885 [debug] Current batch of media processed. Will check again in 1000ms 08:48:40.886 [debug] Current batch of media processed. Will check again in 1000ms 08:48:41.887 [debug] Current batch of media processed. Will check again in 1000ms 08:48:42.889 [debug] Current batch of media processed. Will check again in 1000ms 08:48:43.891 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 08:48:43.892 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1012.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:43.894 [debug] QUERY OK source="sources" db=0.7ms queue=0.3ms idle=921.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:43.895 [debug] QUERY OK source="media_items" db=0.7ms queue=0.4ms idle=15.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 08:48:43.944 [debug] QUERY OK source="media_items" db=47.5ms idle=17.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "ff188c78-fa7e-4ec7-80e2-8e90e6ca1730", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 08:48:43Z], ~U[2026-03-11 08:48:43Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 08:48:43.945 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=65.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:43.946 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=53.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:43.948 [debug] QUERY OK source="media_items" db=0.8ms idle=53.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 [36583] 08:48:43.948 [debug] Current batch of media processed. Will check again in 1000ms 08:48:44.949 [debug] Current batch of media processed. Will check again in 1000ms 08:48:45.950 [debug] Current batch of media processed. Will check again in 1000ms 08:48:46.951 [debug] Current batch of media processed. Will check again in 1000ms 08:48:47.952 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 08:48:47.954 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=966.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:47.955 [debug] QUERY OK source="sources" db=0.7ms idle=75.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:47.957 [debug] QUERY OK source="media_items" db=1.0ms idle=76.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 08:48:47.987 [debug] QUERY OK source="media_items" db=29.0ms idle=78.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "f878cfa6-f8e0-448f-930f-cac1a60c2504", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 08:48:47Z], ~U[2026-03-11 08:48:47Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 08:48:47.990 [debug] QUERY OK source="sources" db=1.6ms queue=0.2ms idle=109.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:47.993 [debug] QUERY OK source="media_profiles" db=2.3ms queue=0.1ms idle=34.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 08:48:47.995 [debug] QUERY OK source="media_items" db=1.6ms idle=36.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 [36439] 08:48:47.997 [debug] Current batch of media processed. Will check again in 1000ms 08:48:48.297 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 08:48:48.998 [debug] Current batch of media processed. Will check again in 1000ms 08:48:50.003 [debug] Current batch of media processed. Will check again in 1000ms 08:48:51.005 [debug] Current batch of media processed. Will check again in 1000ms 08:48:51.563 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ae/a9/aea91954e2d5be0f7d2c6fbaf4095d19ba7195500f121207bd3970e98ad56644.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 08:48:51.565 [debug] Gracefully stopping file follower 08:48:51.566 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=1686.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 08:48:51.567 [debug] QUERY OK source="sources" db=0.4ms idle=1687.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.568 [debug] QUERY OK source="media_items" db=0.7ms idle=1688.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 08:48:51.600 [debug] QUERY OK source="media_items" db=30.5ms idle=1563.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "bafbc9a9-2e00-4f30-a7a5-f4dbf7a2b0a9", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 08:48:51.601 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=590.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.604 [debug] QUERY OK source="media_items" db=1.1ms queue=0.7ms idle=35.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 08:48:51.627 [debug] QUERY OK source="media_items" db=21.5ms idle=37.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "9f968f4e-97e9-428b-a23f-118c68220b72", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 08:48:51.629 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=59.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.630 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=29.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 08:48:51.656 [debug] QUERY OK source="media_items" db=23.7ms idle=29.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "32d1af0f-3bbd-4018-9f94-a01148bc05e4", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 08:48:51.657 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [1] 08:48:51.659 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=31.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 08:48:51.682 [debug] QUERY OK source="media_items" db=22.0ms idle=30.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "84e43d17-269a-4dbe-bbf8-e84c54bbc8e0", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 08:48:51.684 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=52.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.685 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=29.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 08:48:51.708 [debug] QUERY OK source="media_items" db=21.4ms idle=28.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "113baa4d-5d3f-43f4-bdcc-1c810c80e7c7", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 08:48:51.710 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=49.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.711 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=28.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 08:48:51.768 [debug] QUERY OK source="media_items" db=54.9ms idle=28.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "71f0a688-f53b-4a30-808a-1e092fa6822e", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 08:48:51.771 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=84.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.772 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=63.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 08:48:51.808 [debug] QUERY OK source="media_items" db=34.6ms queue=0.1ms idle=63.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "35c80595-483e-4957-8295-6789e82f5962", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 08:48:51.810 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=97.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.812 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=42.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 08:48:51.829 [debug] QUERY OK source="media_items" db=16.4ms idle=41.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "ecaf9c32-009a-45d2-9947-cf5075197e1e", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 08:48:51.830 [debug] QUERY OK source="sources" db=0.6ms idle=57.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.832 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=23.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 08:48:51.859 [debug] QUERY OK source="media_items" db=25.3ms idle=22.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "2b0a8c3b-f572-4ab4-91de-5107ebe98aa9", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 08:48:51.860 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=47.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 08:48:51.862 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=31.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 08:48:51.872 [debug] QUERY OK source="media_items" db=9.0ms idle=32.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "892755d0-5d64-4379-861e-b6a3610d199d", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 08:48:51.874 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=40.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z], 1] 08:48:51.876 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=16.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 08:48:51.893 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=31.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 08:48:51.894 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=31.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 08:48:51.906 [debug] QUERY OK source="tasks" db=5.3ms idle=24.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3237, 1, ~U[2026-03-11 08:48:51Z], ~U[2026-03-11 08:48:51Z]] 08:48:51.911 [info] {"args":{"id":1},"id":3236,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":40185309,"event":"job:stop","queue_time":180419,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 08:49:00.482 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:49:09.288 [info] {"source":"oban","duration":1861,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:49:39.292 [info] {"source":"oban","duration":2182,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:00.484 [info] {"source":"oban","duration":852,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:50:09.294 [info] {"source":"oban","duration":1532,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:50:39.297 [info] {"source":"oban","duration":1875,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:00.486 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:51:09.300 [info] {"source":"oban","duration":1616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:39.303 [info] {"source":"oban","duration":1397,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:51:48.318 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 08:52:00.488 [info] {"source":"oban","duration":909,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:52:09.305 [info] {"source":"oban","duration":1696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:52:39.309 [info] {"source":"oban","duration":2333,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:00.491 [info] {"source":"oban","duration":986,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:53:09.315 [info] {"source":"oban","duration":5385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:53:39.317 [info] {"source":"oban","duration":1760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:54:00.492 [info] {"source":"oban","duration":513,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:54:09.320 [info] {"source":"oban","duration":1295,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:54:39.322 [info] {"source":"oban","duration":1584,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:00.495 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:55:09.326 [info] {"source":"oban","duration":2287,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:55:39.328 [info] {"source":"oban","duration":1811,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:00.496 [info] {"source":"oban","duration":396,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:56:09.332 [info] {"source":"oban","duration":2069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:56:39.335 [info] {"source":"oban","duration":2228,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:57:00.498 [info] {"source":"oban","duration":500,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:57:09.337 [info] {"source":"oban","duration":1417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:57:39.339 [info] {"source":"oban","duration":1551,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:00.501 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:58:09.343 [info] {"source":"oban","duration":2007,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:58:39.345 [info] {"source":"oban","duration":1924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:00.503 [info] {"source":"oban","duration":698,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 08:59:09.349 [info] {"source":"oban","duration":2230,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 08:59:39.353 [info] {"source":"oban","duration":2947,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:00.505 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:00:09.356 [info] {"source":"oban","duration":1954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:39.359 [info] {"source":"oban","duration":2056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:00:48.469 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 09:01:00.506 [info] {"source":"oban","duration":444,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:01:09.361 [info] {"source":"oban","duration":1428,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:39.364 [info] {"source":"oban","duration":1615,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:01:48.485 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 09:02:00.508 [info] {"source":"oban","duration":509,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:02:09.367 [info] {"source":"oban","duration":1509,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:02:39.370 [info] {"source":"oban","duration":1706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:00.511 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:03:09.374 [info] {"source":"oban","duration":2053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:03:39.376 [info] {"source":"oban","duration":1543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:00.512 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:04:09.379 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:04:39.382 [info] {"source":"oban","duration":2100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:00.515 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:05:09.386 [info] {"source":"oban","duration":2959,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:05:39.388 [info] {"source":"oban","duration":1789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:06:00.518 [info] {"source":"oban","duration":741,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:06:09.392 [info] {"source":"oban","duration":2145,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:06:39.395 [info] {"source":"oban","duration":2564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:00.520 [info] {"source":"oban","duration":943,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:07:09.398 [info] {"source":"oban","duration":1882,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:07:39.401 [info] {"source":"oban","duration":1674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:00.521 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:08:09.404 [info] {"source":"oban","duration":1505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:08:39.407 [info] {"source":"oban","duration":2009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:00.523 [info] {"source":"oban","duration":468,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:09:09.409 [info] {"source":"oban","duration":1500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:09:39.413 [info] {"source":"oban","duration":1897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:10:00.526 [info] {"source":"oban","duration":565,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:10:09.416 [info] {"source":"oban","duration":2167,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:10:39.418 [info] {"source":"oban","duration":1689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:00.561 [info] {"source":"oban","duration":11857,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:11:09.447 [info] {"source":"oban","duration":3085,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:11:39.449 [info] {"source":"oban","duration":1762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:12:00.563 [info] {"source":"oban","duration":445,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:12:09.452 [info] {"source":"oban","duration":1613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:12:39.454 [info] {"source":"oban","duration":1686,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:00.565 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:13:09.458 [info] {"source":"oban","duration":1956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:13:39.460 [info] {"source":"oban","duration":1701,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:00.568 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:14:09.464 [info] {"source":"oban","duration":2010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:14:39.466 [info] {"source":"oban","duration":1728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:00.569 [info] {"source":"oban","duration":328,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:15:09.469 [info] {"source":"oban","duration":1802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:15:39.473 [info] {"source":"oban","duration":1911,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:16:00.571 [info] {"source":"oban","duration":909,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:16:09.476 [info] {"source":"oban","duration":1905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:16:39.478 [info] {"source":"oban","duration":1634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:00.572 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:17:09.482 [info] {"source":"oban","duration":1990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:17:39.484 [info] {"source":"oban","duration":1779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:00.574 [info] {"source":"oban","duration":564,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:18:09.487 [info] {"source":"oban","duration":1524,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:39.489 [info] {"source":"oban","duration":1649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:18:52.825 [info] {"args":{"id":1},"id":3237,"meta":{},"system_time":1773220732611558160,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:18:52.925 [debug] QUERY OK source="sources" db=2.6ms queue=0.4ms idle=1722.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:18:52.961 [debug] QUERY OK source="settings" db=14.1ms queue=0.5ms idle=1746.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:53.222 [debug] QUERY OK source="media_items" db=256.1ms queue=0.2ms idle=1571.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")))) [1] 09:18:53.259 [debug] QUERY OK source="media_items" db=36.3ms queue=0.3ms idle=647.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:18:53.261 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=662.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:18:53.424 [debug] QUERY OK source="settings" db=0.7ms queue=0.3ms idle=497.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:53.682 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:18:53.684 [debug] Current batch of media processed. Will check again in 1000ms 09:18:53.685 [debug] QUERY OK source="settings" db=0.9ms queue=0.4ms idle=461.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:53.686 [debug] QUERY OK source="settings" db=0.7ms idle=425.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:53.711 [debug] QUERY OK source="settings" db=24.4ms idle=424.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:18:53.862 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/cb/42/cb426d05a1f2df67cdca60a5194c4581c5248b35bfd86ee9fe909d54e8238d3c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:18:54.685 [debug] Current batch of media processed. Will check again in 1000ms 09:18:55.687 [debug] Current batch of media processed. Will check again in 1000ms 09:18:56.688 [debug] Current batch of media processed. Will check again in 1000ms 09:18:57.689 [debug] Current batch of media processed. Will check again in 1000ms 09:18:58.690 [debug] Current batch of media processed. Will check again in 1000ms 09:18:59.691 [debug] Current batch of media processed. Will check again in 1000ms 09:19:00.582 [info] {"source":"oban","duration":2393,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:19:00.692 [debug] Current batch of media processed. Will check again in 1000ms 09:19:01.694 [debug] Current batch of media processed. Will check again in 1000ms 09:19:02.695 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 09:19:02.725 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1523.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:02.728 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1526.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:02.791 [debug] QUERY OK source="media_items" db=62.0ms queue=0.3ms idle=1129.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 09:19:02.846 [debug] QUERY OK source="media_items" db=53.0ms queue=0.2ms idle=593.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "69ae0e9b-54b4-4eb9-8945-635e158a5acc", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 09:19:02Z], ~U[2026-03-11 09:19:02Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 09:19:02.849 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=245.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:02.904 [debug] QUERY OK source="media_profiles" db=2.1ms queue=0.1ms idle=170.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:02.913 [debug] QUERY OK source="media_items" db=0.9ms idle=184.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 [37332] 09:19:02.913 [debug] Current batch of media processed. Will check again in 1000ms 09:19:03.915 [debug] Current batch of media processed. Will check again in 1000ms 09:19:04.918 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 09:19:04.919 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=718.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:04.921 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [1] 09:19:04.923 [debug] QUERY OK source="media_items" db=0.8ms idle=721.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 09:19:05.069 [debug] QUERY OK source="media_items" db=144.8ms idle=723.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "5cf6d7c9-4df9-4301-ac35-320a3c05d762", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 09:19:04Z], ~U[2026-03-11 09:19:04Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 09:19:05.090 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=482.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:05.096 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.4ms idle=174.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:05.116 [debug] QUERY OK source="media_items" db=0.6ms idle=194.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 [36910] 09:19:05.119 [debug] Current batch of media processed. Will check again in 1000ms 09:19:06.125 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 09:19:06.128 [debug] QUERY OK source="sources" db=0.7ms idle=1058.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:06.130 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1039.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:06.132 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1034.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 09:19:06.181 [debug] QUERY OK source="media_items" db=25.2ms queue=1.2ms idle=1022.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "65254cda-a4b8-483a-bf4a-7dad03f3a654", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 09:19:06Z], ~U[2026-03-11 09:19:06Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 09:19:06.188 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=577.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:06.194 [debug] QUERY OK source="media_profiles" db=0.7ms queue=5.0ms idle=60.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:06.232 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=100.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 [36578] 09:19:06.235 [debug] Current batch of media processed. Will check again in 1000ms 09:19:07.236 [debug] Current batch of media processed. Will check again in 1000ms 09:19:08.238 [debug] Current batch of media processed. Will check again in 1000ms 09:19:09.239 [debug] Current batch of media processed. Will check again in 1000ms 09:19:09.876 [info] {"source":"oban","duration":385547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:10.240 [debug] Current batch of media processed. Will check again in 1000ms 09:19:11.241 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 09:19:11.264 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=637.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:11.267 [debug] QUERY OK source="sources" db=2.6ms queue=0.2ms idle=33.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:11.270 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=36.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 09:19:11.295 [debug] QUERY OK source="media_items" db=23.1ms queue=0.1ms idle=40.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "55df3532-33ad-4c0b-9fab-95fda3cee6ff", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 09:19:11Z], ~U[2026-03-11 09:19:11Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 09:19:11.319 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms 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" = ?) [1] 09:19:11.321 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.7ms idle=56.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:11.323 [debug] QUERY OK source="media_items" db=1.1ms idle=54.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 [36579] 09:19:11.323 [debug] Current batch of media processed. Will check again in 1000ms 09:19:12.325 [debug] Current batch of media processed. Will check again in 1000ms 09:19:13.326 [debug] Current batch of media processed. Will check again in 1000ms 09:19:14.327 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 09:19:14.336 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=1104.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:14.338 [debug] QUERY OK source="sources" db=1.0ms idle=1106.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:14.339 [debug] QUERY OK source="media_items" db=0.9ms idle=1107.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 09:19:14.384 [debug] QUERY OK source="media_items" db=43.3ms idle=1109.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "99c58d0b-c269-41a0-8bee-7ab844d4a218", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 09:19:14Z], ~U[2026-03-11 09:19:14Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 09:19:14.417 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=778.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:14.422 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.3ms idle=84.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:14.424 [debug] QUERY OK source="media_items" db=1.0ms idle=84.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 [36580] 09:19:14.424 [debug] Current batch of media processed. Will check again in 1000ms 09:19:15.425 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 09:19:15.442 [debug] QUERY OK source="sources" db=0.6ms queue=0.3ms idle=1057.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:15.443 [debug] QUERY OK source="sources" db=0.8ms idle=1025.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:15.445 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1022.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 09:19:15.715 [debug] QUERY OK source="media_items" db=266.4ms idle=1021.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "75c5a6d6-f4b6-40d6-8306-76b3dc32b320", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 09:19:15Z], ~U[2026-03-11 09:19:15Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 09:19:15.717 [debug] QUERY OK source="sources" db=0.6ms queue=0.3ms idle=274.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:15.719 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=273.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:15.720 [debug] QUERY OK source="media_items" db=1.0ms idle=274.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 [36581] 09:19:15.721 [debug] Current batch of media processed. Will check again in 1000ms 09:19:16.722 [debug] Current batch of media processed. Will check again in 1000ms 09:19:17.723 [debug] Current batch of media processed. Will check again in 1000ms 09:19:18.724 [debug] Current batch of media processed. Will check again in 1000ms 09:19:19.725 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 09:19:19.734 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=501.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:19.736 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=502.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:19.737 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=504.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 09:19:19.813 [debug] QUERY OK source="media_items" db=74.5ms idle=505.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "725348e5-d487-407a-85fa-2ae2c5288a8c", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 09:19:19Z], ~U[2026-03-11 09:19:19Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 09:19:19.816 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=156.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:19.819 [debug] QUERY OK source="media_profiles" db=1.9ms idle=82.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:19.852 [debug] QUERY OK source="media_items" db=0.7ms queue=0.3ms idle=114.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 [36582] 09:19:19.852 [debug] Current batch of media processed. Will check again in 1000ms 09:19:20.853 [debug] Current batch of media processed. Will check again in 1000ms 09:19:21.854 [debug] Current batch of media processed. Will check again in 1000ms 09:19:22.855 [debug] Current batch of media processed. Will check again in 1000ms 09:19:23.856 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 09:19:23.858 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=625.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:23.860 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=627.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:23.862 [debug] QUERY OK source="media_items" db=1.6ms idle=628.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 09:19:23.894 [debug] QUERY OK source="media_items" db=31.3ms idle=630.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "281b5748-73c6-4329-b472-16f4f27260fd", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 09:19:23Z], ~U[2026-03-11 09:19:23Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 09:19:23.897 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=224.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:23.899 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.6ms idle=39.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:23.901 [debug] QUERY OK source="media_items" db=1.1ms idle=40.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 [36583] 09:19:23.901 [debug] Current batch of media processed. Will check again in 1000ms 09:19:24.902 [debug] Current batch of media processed. Will check again in 1000ms 09:19:25.903 [debug] Current batch of media processed. Will check again in 1000ms 09:19:26.905 [debug] Current batch of media processed. Will check again in 1000ms 09:19:27.906 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 09:19:27.908 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=675.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:27.910 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=676.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:27.911 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=678.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 09:19:27.934 [debug] QUERY OK source="media_items" db=21.8ms idle=680.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "27665b13-7583-4106-9665-7291f933373d", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 09:19:27Z], ~U[2026-03-11 09:19:27Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 09:19:27.956 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=270.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:27.957 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=48.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:19:27.958 [debug] QUERY OK source="media_items" db=0.6ms idle=47.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 [36439] 09:19:27.959 [debug] Current batch of media processed. Will check again in 1000ms 09:19:28.960 [debug] Current batch of media processed. Will check again in 1000ms 09:19:29.961 [debug] Current batch of media processed. Will check again in 1000ms 09:19:30.962 [debug] Current batch of media processed. Will check again in 1000ms 09:19:31.344 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/cb/42/cb426d05a1f2df67cdca60a5194c4581c5248b35bfd86ee9fe909d54e8238d3c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 09:19:31.346 [debug] Gracefully stopping file follower 09:19:31.349 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=650.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:19:31.350 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=117.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.352 [debug] QUERY OK source="media_items" db=1.2ms idle=118.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 09:19:31.363 [debug] QUERY OK source="media_items" db=10.6ms idle=120.6ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "cf746de1-bea7-4fd5-b334-3d18138c194a", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 09:19:31.365 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=132.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.366 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=16.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 09:19:31.391 [debug] QUERY OK source="media_items" db=23.9ms idle=16.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "fd8d9c4c-ff53-419c-80b9-24ff4d1791a4", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 09:19:31.478 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.499 [debug] QUERY OK source="media_items" db=1.1ms queue=0.3ms idle=134.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 09:19:31.526 [debug] QUERY OK source="media_items" db=24.4ms idle=134.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "12ed622a-6378-4d00-97db-d7cead794c9f", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 09:19:31.536 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=168.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.539 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=145.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 09:19:31.559 [debug] QUERY OK source="media_items" db=18.2ms queue=0.1ms idle=62.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "30bde2cd-ff8e-45a5-830f-b4373f1ecad0", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 09:19:31.562 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=62.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.565 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=38.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 09:19:31.592 [debug] QUERY OK source="media_items" db=25.7ms queue=0.1ms idle=29.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "e7589816-42e8-45af-b508-83752bdf4788", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 09:19:31.595 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=56.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.599 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=39.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 09:19:31.624 [debug] QUERY OK source="media_items" db=23.3ms idle=37.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "a0ffe333-288b-4429-b7e3-391ddcffb2fe", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 09:19:31.633 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=68.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.636 [debug] QUERY OK source="media_items" db=1.6ms idle=42.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 09:19:31.657 [debug] QUERY OK source="media_items" db=17.4ms idle=41.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "1da3d7fb-7420-439c-b0e2-03258b8a4fe0", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 09:19:31.661 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=61.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.666 [debug] QUERY OK source="media_items" db=0.9ms queue=0.3ms idle=41.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 09:19:31.708 [debug] QUERY OK source="media_items" db=16.5ms queue=0.2ms idle=57.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "8a68b073-f3ac-4d8e-be3e-caabd1fa56d6", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 09:19:31.712 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=57.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.713 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=50.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 09:19:31.785 [debug] QUERY OK source="media_items" db=70.0ms idle=48.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "b7eaf7e4-2c7a-45da-821c-47ac7e888382", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 09:19:31.790 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=82.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:19:31.792 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=79.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 09:19:31.806 [debug] QUERY OK source="media_items" db=12.0ms idle=80.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "cea13990-64d1-4ef2-b241-fbd71b6d0af8", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 09:19:31.810 [debug] QUERY OK source="sources" db=2.2ms queue=0.2ms idle=94.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z], 1] 09:19:31.812 [debug] QUERY OK source="media_items" db=1.2ms idle=26.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 09:19:31.816 [debug] QUERY OK source="media_items" db=1.1ms idle=24.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 09:19:31.818 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=24.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:19:31.954 [debug] QUERY OK source="tasks" db=103.7ms idle=38.0ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3238, 1, ~U[2026-03-11 09:19:31Z], ~U[2026-03-11 09:19:31Z]] 09:19:31.958 [info] {"args":{"id":1},"id":3237,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":39343015,"event":"job:stop","queue_time":685753,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:19:39.879 [info] {"source":"oban","duration":2027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:19:48.651 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 09:20:00.583 [info] {"source":"oban","duration":601,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:20:09.882 [info] {"source":"oban","duration":2131,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:20:39.885 [info] {"source":"oban","duration":2085,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:00.585 [info] {"source":"oban","duration":446,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:21:09.889 [info] {"source":"oban","duration":3657,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:39.892 [info] {"source":"oban","duration":1732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:21:48.708 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 09:22:00.587 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:22:09.895 [info] {"source":"oban","duration":1423,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:22:39.953 [info] {"source":"oban","duration":55929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 09:23:00.628 [info] {"source":"oban","duration":676,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:23:09.956 [info] {"source":"oban","duration":2013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:23:39.958 [info] {"source":"oban","duration":1598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:24:00.630 [info] {"source":"oban","duration":1233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:24:09.960 [info] {"source":"oban","duration":1843,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:24:39.964 [info] {"source":"oban","duration":2081,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:00.632 [info] {"source":"oban","duration":434,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:25:09.966 [info] {"source":"oban","duration":1728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:25:39.970 [info] {"source":"oban","duration":2130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:00.634 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:26:09.972 [info] {"source":"oban","duration":1439,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:26:39.974 [info] {"source":"oban","duration":1777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:00.636 [info] {"source":"oban","duration":896,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:27:09.977 [info] {"source":"oban","duration":1526,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:27:39.980 [info] {"source":"oban","duration":1507,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:00.638 [info] {"source":"oban","duration":558,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:28:09.982 [info] {"source":"oban","duration":1864,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:28:39.985 [info] {"source":"oban","duration":1619,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:00.641 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:29:09.988 [info] {"source":"oban","duration":1502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:29:39.991 [info] {"source":"oban","duration":2136,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:00.643 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:30:09.993 [info] {"source":"oban","duration":1592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:30:36.354 [info] GET / 09:30:36.532 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 09:30:36.683 [debug] QUERY OK source="settings" db=33.2ms queue=0.3ms idle=1256.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:30:36.715 [debug] QUERY OK source="media_profiles" db=30.5ms queue=0.4ms idle=1290.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 09:30:36.741 [debug] QUERY OK source="sources" db=20.3ms queue=4.1ms idle=1323.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 09:30:36.743 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=1099.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:30:36.744 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=90.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:30:37.237 [debug] QUERY OK source="settings" db=0.6ms queue=5.7ms idle=547.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:30:37.238 [debug] QUERY OK source="settings" db=0.6ms idle=522.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:30:37.602 [debug] QUERY OK source="settings" db=0.8ms queue=0.3ms idle=859.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:30:38.032 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=1287.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 09:30:38.574 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1337.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:30:38.579 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=1339.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:30:38.580 [debug] QUERY OK source="sources" db=0.5ms queue=0.3ms idle=977.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:30:38.706 [debug] QUERY OK source="media_items" db=0.6ms queue=0.2ms idle=975.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 09:30:38.715 [debug] QUERY OK source="media_items" db=4.1ms queue=0.1ms idle=677.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:30:38.796 [info] Sent 200 in 2449ms 09:30:39.997 [info] {"source":"oban","duration":2009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:00.644 [info] {"source":"oban","duration":785,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:31:10.004 [info] {"source":"oban","duration":6153,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:40.008 [info] {"source":"oban","duration":1973,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:31:48.780 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 09:32:00.647 [info] {"source":"oban","duration":855,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:32:10.025 [info] {"source":"oban","duration":1540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:32:40.027 [info] {"source":"oban","duration":1818,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:00.648 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:33:10.031 [info] {"source":"oban","duration":2091,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:33:40.034 [info] {"source":"oban","duration":1906,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:34:00.650 [info] {"source":"oban","duration":788,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:34:10.036 [info] {"source":"oban","duration":1830,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:34:40.039 [info] {"source":"oban","duration":1845,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:00.652 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:35:10.042 [info] {"source":"oban","duration":1725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:35:40.045 [info] {"source":"oban","duration":1717,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:00.654 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:36:10.048 [info] {"source":"oban","duration":1392,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:36:40.051 [info] {"source":"oban","duration":2121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:37:00.656 [info] {"source":"oban","duration":774,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:37:10.053 [info] {"source":"oban","duration":1463,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:37:40.056 [info] {"source":"oban","duration":1612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:00.659 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:38:10.059 [info] {"source":"oban","duration":1516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:38:40.062 [info] {"source":"oban","duration":1960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:00.660 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:39:10.065 [info] {"source":"oban","duration":1997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:39:40.068 [info] {"source":"oban","duration":2386,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:00.661 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:40:10.070 [info] {"source":"oban","duration":1855,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:40:40.074 [info] {"source":"oban","duration":2017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:00.663 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:41:10.077 [info] {"source":"oban","duration":2331,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:41:40.123 [info] {"source":"oban","duration":3056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:00.665 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:42:10.126 [info] {"source":"oban","duration":1521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:42:40.130 [info] {"source":"oban","duration":2125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:00.667 [info] {"source":"oban","duration":447,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:43:10.132 [info] {"source":"oban","duration":1502,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:43:40.135 [info] {"source":"oban","duration":1852,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:00.668 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:44:10.139 [info] {"source":"oban","duration":2019,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:44:40.141 [info] {"source":"oban","duration":1458,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:00.670 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:45:10.144 [info] {"source":"oban","duration":1703,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:45:40.146 [info] {"source":"oban","duration":1889,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:00.672 [info] {"source":"oban","duration":429,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:46:10.149 [info] {"source":"oban","duration":1509,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:46:40.152 [info] {"source":"oban","duration":1943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:00.674 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:47:10.156 [info] {"source":"oban","duration":1933,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:47:40.158 [info] {"source":"oban","duration":1839,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:00.676 [info] {"source":"oban","duration":284,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:48:10.161 [info] {"source":"oban","duration":1760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:48:40.164 [info] {"source":"oban","duration":1815,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:00.678 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:49:10.168 [info] {"source":"oban","duration":1782,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:32.281 [info] {"args":{"id":1},"id":3238,"meta":{},"system_time":1773222572270568472,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:49:32.285 [debug] QUERY OK source="sources" db=2.5ms queue=0.2ms idle=507.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:32.317 [debug] QUERY OK source="settings" db=31.1ms queue=0.1ms idle=510.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:49:32.637 [debug] QUERY OK source="media_items" db=319.1ms queue=0.1ms idle=542.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")))) [1] 09:49:32.701 [debug] QUERY OK source="media_items" db=61.8ms queue=0.8ms idle=417.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:49:32.702 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.2ms idle=431.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:32.705 [debug] QUERY OK source="settings" db=0.7ms idle=419.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:49:32.965 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 09:49:32.990 [debug] Current batch of media processed. Will check again in 1000ms 09:49:32.991 [debug] QUERY OK source="settings" db=26.0ms queue=0.2ms idle=648.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:49:32.993 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=354.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:49:32.995 [debug] QUERY OK source="settings" db=1.1ms idle=292.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:49:33.005 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/bc/f7/bcf7dfa222576f75d8af111d8317b69395282914a2a0639ce91618436a5eb596.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 09:49:33.993 [debug] Current batch of media processed. Will check again in 1000ms 09:49:34.994 [debug] Current batch of media processed. Will check again in 1000ms 09:49:35.995 [debug] Current batch of media processed. Will check again in 1000ms 09:49:36.996 [debug] Current batch of media processed. Will check again in 1000ms 09:49:37.997 [debug] Current batch of media processed. Will check again in 1000ms 09:49:38.998 [debug] Current batch of media processed. Will check again in 1000ms 09:49:39.999 [debug] Current batch of media processed. Will check again in 1000ms 09:49:40.457 [info] {"source":"oban","duration":288649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:49:41.000 [debug] Current batch of media processed. Will check again in 1000ms 09:49:42.002 [debug] Current batch of media processed. Will check again in 1000ms 09:49:43.004 [debug] Current batch of media processed. Will check again in 1000ms 09:49:44.150 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 09:49:44.351 [debug] QUERY OK source="sources" db=5.7ms queue=0.2ms idle=1567.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:44.569 [debug] QUERY OK source="sources" db=0.6ms queue=0.3ms idle=791.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:44.851 [debug] QUERY OK source="media_items" db=228.1ms queue=0.2ms idle=820.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 09:49:45.344 [debug] QUERY OK source="media_items" db=216.8ms queue=0.9ms idle=1349.2ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "9852fa7f-c8ad-4791-8695-3e7ec2eeb962", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 09:49:45Z], ~U[2026-03-11 09:49:45Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 09:49:45.357 [debug] QUERY OK source="sources" db=6.3ms queue=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:45.387 [debug] QUERY OK source="media_profiles" db=26.0ms queue=0.2ms idle=791.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:45.458 [debug] QUERY OK source="media_items" db=64.6ms queue=0.1ms idle=566.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 [37332] 09:49:45.459 [debug] Current batch of media processed. Will check again in 1000ms 09:49:46.477 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 09:49:46.481 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=1122.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:46.484 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1113.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:46.489 [debug] QUERY OK source="media_items" db=4.2ms queue=0.1ms idle=1097.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 09:49:46.602 [debug] QUERY OK source="media_items" db=111.7ms idle=1031.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "02ab852f-7355-4bfc-b553-9e5a72dd6d75", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 09:49:46Z], ~U[2026-03-11 09:49:46Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 09:49:46.642 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=267.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:46.643 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=161.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:46.706 [debug] QUERY OK source="media_items" db=56.6ms queue=0.1ms idle=164.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 [36910] 09:49:46.708 [debug] Current batch of media processed. Will check again in 1000ms 09:49:47.709 [debug] Current batch of media processed. Will check again in 1000ms 09:49:48.711 [debug] Current batch of media processed. Will check again in 1000ms 09:49:48.960 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 09:49:49.713 [debug] Current batch of media processed. Will check again in 1000ms 09:49:50.716 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 09:49:50.720 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=941.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:50.722 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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" = ?) [1] 09:49:50.723 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=944.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 09:49:50.916 [debug] QUERY OK source="media_items" db=190.4ms queue=0.1ms idle=945.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "95ee178c-1c0a-44a1-94c0-0130d12ac1e4", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 09:49:50Z], ~U[2026-03-11 09:49:50Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 09:49:50.951 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms idle=561.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:50.953 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=231.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:50.976 [debug] QUERY OK source="media_items" db=3.8ms queue=0.1ms idle=250.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 [36578] 09:49:50.979 [debug] Current batch of media processed. Will check again in 1000ms 09:49:51.980 [debug] Current batch of media processed. Will check again in 1000ms 09:49:52.983 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 09:49:53.034 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=640.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:53.061 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=281.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:53.062 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=283.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 09:49:53.171 [debug] QUERY OK source="media_items" db=73.0ms queue=0.2ms idle=303.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "08d7c062-9e60-4c66-ba54-41f2d535cc29", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 09:49:53Z], ~U[2026-03-11 09:49:53Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 09:49:53.173 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=393.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:53.174 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=139.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:53.187 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=125.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 [36579] 09:49:53.204 [debug] Current batch of media processed. Will check again in 1000ms 09:49:54.205 [debug] Current batch of media processed. Will check again in 1000ms 09:49:55.208 [debug] Current batch of media processed. Will check again in 1000ms 09:49:56.210 [debug] Current batch of media processed. Will check again in 1000ms 09:49:57.212 [debug] Current batch of media processed. Will check again in 1000ms 09:49:58.213 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 09:49:58.217 [debug] QUERY OK source="sources" db=0.8ms idle=1438.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:58.219 [debug] QUERY OK source="sources" db=1.2ms idle=1440.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:58.220 [debug] QUERY OK source="media_items" db=0.7ms idle=1441.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 09:49:58.250 [debug] QUERY OK source="media_items" db=27.2ms idle=1443.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "850b37d2-552d-440d-8d30-131d342a3fc0", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 09:49:58Z], ~U[2026-03-11 09:49:58Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 09:49:58.253 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=845.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:58.254 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=35.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:58.256 [debug] QUERY OK source="media_items" db=1.2ms idle=35.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 [36580] 09:49:58.256 [debug] Current batch of media processed. Will check again in 1000ms 09:49:59.258 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 09:49:59.260 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1010.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:49:59.261 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1007.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:59.262 [debug] QUERY OK source="media_items" db=0.7ms idle=1007.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 09:49:59.311 [debug] QUERY OK source="media_items" db=47.7ms idle=1006.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "8e20775c-85f1-440e-ba57-8660d6594ee0", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 09:49:59Z], ~U[2026-03-11 09:49:59Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 09:49:59.313 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=903.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:49:59.314 [debug] QUERY OK source="media_profiles" db=0.7ms idle=53.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:49:59.315 [debug] QUERY OK source="media_items" db=0.7ms idle=53.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 [36581] 09:49:59.317 [debug] Current batch of media processed. Will check again in 1000ms 09:50:00.318 [debug] Current batch of media processed. Will check again in 1000ms 09:50:00.679 [info] {"source":"oban","duration":293,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:50:01.322 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 09:50:01.324 [debug] QUERY OK source="sources" db=1.1ms idle=909.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:50:01.326 [debug] QUERY OK source="sources" db=1.3ms idle=645.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:01.327 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=548.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 09:50:01.501 [debug] QUERY OK source="media_items" db=146.7ms queue=0.1ms idle=550.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "8474c315-16b4-4b82-826e-2ddd822284e7", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 09:50:01Z], ~U[2026-03-11 09:50:01Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 09:50:01.503 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=177.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:01.507 [debug] QUERY OK source="media_profiles" db=0.8ms queue=3.3ms idle=177.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:50:01.511 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=182.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 [36582] 09:50:01.513 [debug] Current batch of media processed. Will check again in 1000ms 09:50:02.514 [debug] Current batch of media processed. Will check again in 1000ms 09:50:03.515 [debug] Current batch of media processed. Will check again in 1000ms 09:50:04.516 [debug] Current batch of media processed. Will check again in 1000ms 09:50:05.517 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 09:50:05.521 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=740.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:50:05.525 [debug] QUERY OK source="sources" db=3.1ms queue=0.1ms idle=744.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:05.529 [debug] QUERY OK source="media_items" db=2.1ms queue=1.0ms idle=747.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 09:50:05.553 [debug] QUERY OK source="media_items" db=23.0ms queue=0.1ms idle=752.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "74935ab5-2225-4064-a4bf-57787db553c4", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 09:50:05Z], ~U[2026-03-11 09:50:05Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 09:50:05.555 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=124.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:05.556 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=34.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:50:05.558 [debug] QUERY OK source="media_items" db=1.3ms idle=32.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 [36583] 09:50:05.559 [debug] Current batch of media processed. Will check again in 1000ms 09:50:06.560 [debug] Current batch of media processed. Will check again in 1000ms 09:50:07.561 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 09:50:07.564 [debug] QUERY OK source="sources" db=1.5ms queue=1.0ms idle=783.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:50:07.568 [debug] QUERY OK source="sources" db=2.7ms idle=786.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:07.570 [debug] QUERY OK source="media_items" db=0.9ms queue=1.0ms idle=790.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 09:50:07.628 [debug] QUERY OK source="media_items" db=31.6ms queue=0.4ms idle=794.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "6f579a47-6a4b-438f-a190-059b45619948", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 09:50:07Z], ~U[2026-03-11 09:50:07Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 09:50:07.630 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=193.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:07.633 [debug] QUERY OK source="media_profiles" db=1.9ms queue=1.2ms idle=66.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:50:07.637 [debug] QUERY OK source="media_items" db=2.4ms idle=66.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 [36439] 09:50:07.637 [debug] Current batch of media processed. Will check again in 1000ms 09:50:08.638 [debug] Current batch of media processed. Will check again in 1000ms 09:50:09.639 [debug] Current batch of media processed. Will check again in 1000ms 09:50:10.008 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/bc/f7/bcf7dfa222576f75d8af111d8317b69395282914a2a0639ce91618436a5eb596.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 09:50:10.162 [debug] Gracefully stopping file follower 09:50:10.183 [debug] QUERY OK source="sources" db=21.1ms queue=0.3ms idle=1383.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 09:50:10.187 [debug] QUERY OK source="sources" db=3.0ms queue=0.1ms idle=1405.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.189 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1409.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 09:50:10.207 [debug] QUERY OK source="media_items" db=15.4ms queue=2.1ms idle=1411.4ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "65c8d676-8bc4-4705-abbe-0baa0c3a9c0c", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 09:50:10.233 [debug] QUERY OK source="sources" db=1.4ms queue=0.3ms idle=790.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.234 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=50.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 09:50:10.263 [debug] QUERY OK source="media_items" db=25.4ms queue=0.1ms idle=50.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "337838f5-bd9c-43b5-b0c4-994f70b894cd", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 09:50:10.291 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=101.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.293 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=84.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 09:50:10.583 [debug] QUERY OK source="media_items" db=288.0ms idle=60.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "de080e73-db2c-4f23-89b1-90dbe5aca7c8", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 09:50:10.589 [debug] QUERY OK source="sources" db=0.3ms idle=297.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.591 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=296.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 09:50:10.622 [debug] QUERY OK source="media_items" db=30.0ms idle=9.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "13a0466e-6d7a-470e-b5c0-0e0777c85024", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 09:50:10.654 [debug] QUERY OK source="sources" db=0.9ms idle=64.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.659 [debug] QUERY OK source="media_items" db=2.1ms queue=0.5ms idle=66.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 09:50:10.688 [debug] QUERY OK source="media_items" db=26.1ms queue=0.1ms idle=70.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "fb8260f6-12c5-49dd-9bb1-515e1d0cd3e8", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 09:50:10.691 [debug] QUERY OK source="sources" db=1.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.696 [debug] QUERY OK source="media_items" db=2.4ms queue=0.3ms idle=39.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 09:50:10.725 [debug] QUERY OK source="media_items" db=24.9ms queue=0.2ms idle=40.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "0b5f2d6b-2549-473c-8983-a2d2d2fa556c", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 09:50:10.734 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=44.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.735 [debug] QUERY OK source="media_items" db=1.0ms idle=42.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 09:50:10.761 [debug] QUERY OK source="media_items" db=24.1ms idle=39.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "bebf3147-e9f5-4b61-b39a-4c570bacd21b", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 09:50:10.767 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=41.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.768 [debug] QUERY OK source="media_items" db=0.8ms queue=0.3ms idle=33.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 09:50:10.797 [debug] QUERY OK source="media_items" db=27.2ms idle=34.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "7479c244-4b5f-4dad-8582-9d2d902dbe84", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 09:50:10.801 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=40.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.803 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=34.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 09:50:10.835 [debug] QUERY OK source="media_items" db=31.0ms idle=35.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "edd805d8-92f9-4001-8ded-d649ad1e5318", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 09:50:10.840 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:50:10.843 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=40.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 09:50:10.894 [debug] QUERY OK source="media_items" db=50.0ms idle=40.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "b10178d0-fd7d-4ba6-8585-994873d911d3", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 09:50:10.913 [info] {"source":"oban","duration":331802,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:10.994 [debug] QUERY OK source="sources" db=1.6ms queue=0.2ms idle=157.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 09:50:10Z], ~U[2026-03-11 09:50:10Z], 1] 09:50:11.041 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=199.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 09:50:11.059 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=214.5ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 09:50:11.060 [debug] QUERY OK source="media_items" db=0.6ms queue=0.2ms idle=165.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:50:11.399 [debug] QUERY OK source="tasks" db=43.9ms queue=0.2ms idle=314.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3239, 1, ~U[2026-03-11 09:50:11Z], ~U[2026-03-11 09:50:11Z]] 09:50:11.427 [info] {"args":{"id":1},"id":3238,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":39129579,"event":"job:stop","queue_time":380721,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 09:50:40.916 [info] {"source":"oban","duration":2365,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:50:48.978 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 09:51:00.680 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:51:10.921 [info] {"source":"oban","duration":4072,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:51:40.923 [info] {"source":"oban","duration":1757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:00.685 [info] {"source":"oban","duration":2478,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:52:10.926 [info] {"source":"oban","duration":1730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:52:40.929 [info] {"source":"oban","duration":1578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:00.687 [info] {"source":"oban","duration":292,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:53:10.947 [info] {"source":"oban","duration":1544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:40.949 [info] {"source":"oban","duration":1727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:00.689 [info] {"source":"oban","duration":644,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:54:10.953 [info] {"source":"oban","duration":2399,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:40.957 [info] {"source":"oban","duration":2157,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:00.691 [info] {"source":"oban","duration":515,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:55:11.039 [info] {"source":"oban","duration":81842,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 09:55:41.043 [info] {"source":"oban","duration":1960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:00.693 [info] {"source":"oban","duration":607,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:56:11.063 [info] {"source":"oban","duration":1871,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:41.066 [info] {"source":"oban","duration":2329,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:00.696 [info] {"source":"oban","duration":888,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:57:11.069 [info] {"source":"oban","duration":2086,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:41.072 [info] {"source":"oban","duration":2094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:00.698 [info] {"source":"oban","duration":670,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:58:11.075 [info] {"source":"oban","duration":1976,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:41.077 [info] {"source":"oban","duration":1330,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:00.699 [info] {"source":"oban","duration":353,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:59:11.080 [info] {"source":"oban","duration":1911,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:41.082 [info] {"source":"oban","duration":1801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:00.700 [info] {"source":"oban","duration":414,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:00:11.085 [info] {"source":"oban","duration":1428,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:41.088 [info] {"source":"oban","duration":1599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:00.702 [info] {"source":"oban","duration":332,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:01:11.092 [info] {"source":"oban","duration":2805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:41.095 [info] {"source":"oban","duration":1429,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:00.703 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:02:11.098 [info] {"source":"oban","duration":2258,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:41.101 [info] {"source":"oban","duration":2375,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:00.706 [info] {"source":"oban","duration":943,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:03:11.104 [info] {"source":"oban","duration":2060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:41.106 [info] {"source":"oban","duration":1790,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:00.707 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:04:11.110 [info] {"source":"oban","duration":1962,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:41.113 [info] {"source":"oban","duration":1930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:00.709 [info] {"source":"oban","duration":358,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:05:11.115 [info] {"source":"oban","duration":1866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:41.143 [info] {"source":"oban","duration":26403,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:00.710 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:06:11.179 [info] {"source":"oban","duration":35805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:41.182 [info] {"source":"oban","duration":1957,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:00.711 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:07:11.185 [info] {"source":"oban","duration":1595,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:41.188 [info] {"source":"oban","duration":1778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:00.713 [info] {"source":"oban","duration":888,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:08:11.192 [info] {"source":"oban","duration":2201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:41.195 [info] {"source":"oban","duration":2163,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:00.714 [info] {"source":"oban","duration":584,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:09:11.197 [info] {"source":"oban","duration":1765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:41.200 [info] {"source":"oban","duration":1734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:00.716 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:10:11.204 [info] {"source":"oban","duration":1977,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:41.207 [info] {"source":"oban","duration":2317,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:00.718 [info] {"source":"oban","duration":565,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:11:11.210 [info] {"source":"oban","duration":1892,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:41.212 [info] {"source":"oban","duration":1737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:49.137 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:12:00.720 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:12:11.216 [info] {"source":"oban","duration":1848,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:41.218 [info] {"source":"oban","duration":1575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:49.177 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:13:00.723 [info] {"source":"oban","duration":781,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:13:11.222 [info] {"source":"oban","duration":1820,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:41.225 [info] {"source":"oban","duration":1845,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:00.724 [info] {"source":"oban","duration":471,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:14:11.228 [info] {"source":"oban","duration":1984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:41.230 [info] {"source":"oban","duration":1728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:00.726 [info] {"source":"oban","duration":577,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:15:11.233 [info] {"source":"oban","duration":1744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:41.236 [info] {"source":"oban","duration":1613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:00.728 [info] {"source":"oban","duration":477,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:16:11.239 [info] {"source":"oban","duration":1725,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:41.242 [info] {"source":"oban","duration":1357,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:00.747 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:17:11.245 [info] {"source":"oban","duration":1854,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:41.248 [info] {"source":"oban","duration":1903,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:00.749 [info] {"source":"oban","duration":443,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:18:11.281 [info] {"source":"oban","duration":1921,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:41.285 [info] {"source":"oban","duration":2302,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:00.751 [info] {"source":"oban","duration":475,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:19:11.287 [info] {"source":"oban","duration":1874,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:41.291 [info] {"source":"oban","duration":1917,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:00.752 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:20:11.294 [info] {"source":"oban","duration":2342,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:12.029 [info] {"args":{"id":1},"id":3239,"meta":{},"system_time":1773224412028776402,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:20:12.032 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=955.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:12.072 [debug] QUERY OK source="settings" db=38.0ms queue=0.2ms idle=958.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:20:12.408 [debug] QUERY OK source="media_items" db=333.6ms queue=0.1ms idle=779.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 10:20:12.454 [debug] QUERY OK source="media_items" db=45.7ms queue=0.2ms idle=399.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 10:20:12.457 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.4ms idle=427.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:12.460 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=427.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:20:12.519 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:20:12.534 [debug] Current batch of media processed. Will check again in 1000ms 10:20:12.535 [debug] QUERY OK source="settings" db=15.0ms queue=0.2ms idle=447.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:20:12.536 [debug] QUERY OK source="settings" db=0.8ms queue=0.3ms idle=127.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:20:12.537 [debug] QUERY OK source="settings" db=0.5ms idle=82.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:20:12.540 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d2/e3/d2e358104c225ed8872e482c09238da3e0811ba138d2eebf0b7317077264885d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:20:13.536 [debug] Current batch of media processed. Will check again in 1000ms 10:20:14.537 [debug] Current batch of media processed. Will check again in 1000ms 10:20:15.538 [debug] Current batch of media processed. Will check again in 1000ms 10:20:16.539 [debug] Current batch of media processed. Will check again in 1000ms 10:20:17.541 [debug] Current batch of media processed. Will check again in 1000ms 10:20:18.543 [debug] Current batch of media processed. Will check again in 1000ms 10:20:19.544 [debug] Current batch of media processed. Will check again in 1000ms 10:20:20.632 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.33, "description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 10:20:20.636 [debug] QUERY OK source="sources" db=2.6ms queue=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" IN (?)) [1] 10:20:20.639 [debug] QUERY OK source="sources" db=1.1ms idle=562.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:20.742 [debug] QUERY OK source="media_items" db=102.1ms queue=0.2ms idle=564.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 10:20:20.793 [debug] QUERY OK source="media_items" db=46.7ms idle=671.1ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "0c14f146-a8ab-436e-8888-4d01b88c329d", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 10:20:20Z], ~U[2026-03-11 10:20:20Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 10:20:20.794 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=718.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:20.818 [debug] QUERY OK source="media_profiles" db=22.8ms queue=0.1ms idle=158.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:20.875 [debug] QUERY OK source="media_items" db=55.0ms queue=0.1ms idle=181.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 [37332] 10:20:20.876 [debug] Current batch of media processed. Will check again in 1000ms 10:20:21.877 [debug] Current batch of media processed. Will check again in 1000ms 10:20:22.879 [debug] Current batch of media processed. Will check again in 1000ms 10:20:23.880 [debug] Current batch of media processed. Will check again in 1000ms 10:20:24.881 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 10:20:24.884 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=1805.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:24.887 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=808.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:24.889 [debug] QUERY OK source="media_items" db=1.6ms queue=0.6ms idle=811.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 10:20:24.939 [debug] QUERY OK source="media_items" db=46.6ms queue=0.4ms idle=815.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "e384d158-b9b2-4f8b-b75e-8c29318f6dfb", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 10:20:24Z], ~U[2026-03-11 10:20:24Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 10:20:24.960 [debug] QUERY OK source="sources" db=1.3ms queue=0.3ms idle=881.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:24.963 [debug] QUERY OK source="media_profiles" db=1.0ms queue=1.5ms idle=76.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:24.966 [debug] QUERY OK source="media_items" db=2.0ms idle=76.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 [36910] 10:20:24.966 [debug] Current batch of media processed. Will check again in 1000ms 10:20:25.987 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 10:20:26.004 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1064.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:26.006 [debug] QUERY OK source="sources" db=1.2ms idle=1044.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:26.009 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=1045.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 10:20:26.111 [debug] QUERY OK source="media_items" db=76.6ms queue=0.2ms idle=1067.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "56b7438a-9756-4600-99b3-36526d960436", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 10:20:26Z], ~U[2026-03-11 10:20:26Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 10:20:26.113 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=108.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:26.115 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=107.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:26.117 [debug] QUERY OK source="media_items" db=1.2ms idle=106.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 [36578] 10:20:26.117 [debug] Current batch of media processed. Will check again in 1000ms 10:20:27.118 [debug] Current batch of media processed. Will check again in 1000ms 10:20:28.120 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 10:20:28.142 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=65.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:28.145 [debug] QUERY OK source="sources" db=2.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:28.149 [debug] QUERY OK source="media_items" db=3.4ms queue=0.5ms idle=69.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 10:20:28.184 [debug] QUERY OK source="media_items" db=31.2ms idle=74.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "f2287923-d359-4346-aa9b-59bf71f52a26", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 10:20:28Z], ~U[2026-03-11 10:20:28Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 10:20:28.188 [debug] QUERY OK source="sources" db=3.4ms queue=0.1ms idle=95.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:28.193 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.3ms idle=49.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:28.198 [debug] QUERY OK source="media_items" db=1.9ms idle=51.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 [36579] 10:20:28.201 [debug] Current batch of media processed. Will check again in 1000ms 10:20:29.202 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 10:20:29.215 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1032.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:29.218 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=1028.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:29.220 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=1025.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 10:20:29.243 [debug] QUERY OK source="media_items" db=20.0ms idle=1022.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "dbae0579-77a9-4be3-9931-1a2ec9de49c5", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 10:20:29Z], ~U[2026-03-11 10:20:29Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 10:20:29.245 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=151.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:29.248 [debug] QUERY OK source="media_profiles" db=2.3ms queue=0.1ms idle=30.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:29.267 [debug] QUERY OK source="media_items" db=18.1ms idle=31.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 [36580] 10:20:29.280 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 10:20:29.281 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=60.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:29.283 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=40.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:29.284 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=38.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 10:20:29.313 [debug] QUERY OK source="media_items" db=27.3ms queue=0.1ms idle=36.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "de936c45-943c-4c95-b400-b5a5ac67f548", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 10:20:29Z], ~U[2026-03-11 10:20:29Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 10:20:29.314 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=46.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:29.316 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=33.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:29.317 [debug] QUERY OK source="media_items" db=0.5ms idle=33.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 [36581] 10:20:29.317 [debug] Current batch of media processed. Will check again in 1000ms 10:20:30.318 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 10:20:30.319 [debug] QUERY OK source="sources" db=0.4ms idle=1006.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:30.321 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1005.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:30.322 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 10:20:30.679 [debug] QUERY OK source="media_items" db=330.4ms idle=1006.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "bafca938-9371-49af-b1ba-5986a28199a0", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 10:20:30Z], ~U[2026-03-11 10:20:30Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 10:20:30.681 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=585.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:30.682 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.7ms idle=361.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:30.685 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=363.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 [36582] 10:20:30.705 [debug] Current batch of media processed. Will check again in 1000ms 10:20:31.706 [debug] Current batch of media processed. Will check again in 1000ms 10:20:32.708 [debug] Current batch of media processed. Will check again in 1000ms 10:20:33.709 [debug] Current batch of media processed. Will check again in 1000ms 10:20:34.711 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 10:20:34.712 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=635.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:34.713 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=636.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:34.714 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=637.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 10:20:34.752 [debug] QUERY OK source="media_items" db=30.9ms queue=0.1ms idle=642.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "56b8ae16-ec92-42fd-ab45-0ac385d91aa2", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 10:20:34Z], ~U[2026-03-11 10:20:34Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 10:20:34.753 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=639.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:34.755 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=41.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:34.791 [debug] QUERY OK source="media_items" db=0.9ms idle=76.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 [36583] 10:20:34.792 [debug] Current batch of media processed. Will check again in 1000ms 10:20:35.793 [debug] Current batch of media processed. Will check again in 1000ms 10:20:36.794 [debug] Current batch of media processed. Will check again in 1000ms 10:20:37.795 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 10:20:37.816 [debug] QUERY OK source="sources" db=0.7ms queue=19.2ms idle=1719.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:37.818 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1740.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:37.819 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1742.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 10:20:37.862 [debug] QUERY OK source="media_items" db=42.2ms idle=1699.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "60837782-8769-47ba-8ae9-b80dc900d8d2", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 10:20:37Z], ~U[2026-03-11 10:20:37Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 10:20:37.864 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=739.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:37.865 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=48.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:20:37.881 [debug] QUERY OK source="media_items" db=15.1ms queue=0.1ms idle=48.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 [36439] 10:20:37.882 [debug] Current batch of media processed. Will check again in 1000ms 10:20:38.619 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d2/e3/d2e358104c225ed8872e482c09238da3e0811ba138d2eebf0b7317077264885d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 10:20:38.744 [debug] Gracefully stopping file follower 10:20:38.745 [debug] QUERY OK source="sources" db=1.1ms idle=882.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:20:38.747 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=881.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.748 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=881.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 10:20:38.770 [debug] QUERY OK source="media_items" db=21.5ms idle=867.4ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "509a3b25-eede-4b11-9130-1a9e05434b75", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.mp4", false, 1, ~U[2024-10-12 17:06:19Z]] 10:20:38.772 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=644.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.773 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=26.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 10:20:38.788 [debug] QUERY OK source="media_items" db=14.0ms idle=26.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "d5130982-cf9e-4eeb-a070-081f1a89862c", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 10:20:38.790 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=40.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.791 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=19.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 10:20:38.813 [debug] QUERY OK source="media_items" db=20.4ms idle=20.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "ef06b611-91d9-4aeb-b508-64d09e1e2629", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 10:20:38.815 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.826 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=36.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 10:20:38.846 [debug] QUERY OK source="media_items" db=19.1ms queue=0.1ms idle=36.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "eee5d037-c4f3-49cb-9842-ebb8de7f0170", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 10:20:38.870 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=77.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.901 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=87.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 10:20:38.920 [debug] QUERY OK source="media_items" db=17.7ms idle=86.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "7746977e-5359-426d-8fd9-d22050bfaa56", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 10:20:38.922 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=95.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.924 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=77.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 10:20:38.952 [debug] QUERY OK source="media_items" db=26.4ms idle=54.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "cae804c7-6d68-43d0-b4b9-d535e499e9dc", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 10:20:38.955 [debug] QUERY OK source="sources" db=0.8ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.956 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=35.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 10:20:38.977 [debug] QUERY OK source="media_items" db=19.3ms idle=34.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "c6c2aadf-8bc5-4837-aa77-63c19709186a", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 10:20:38.980 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=54.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:38.982 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=28.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 10:20:38.998 [debug] QUERY OK source="media_items" db=15.0ms queue=0.1ms idle=27.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "2154a984-374f-4de1-ac29-2b6fd75da00a", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 10:20:38Z], ~U[2026-03-11 10:20:38Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 10:20:39.000 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=42.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:39.001 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=23.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 10:20:39.046 [debug] QUERY OK source="media_items" db=44.3ms idle=21.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "b85eef37-9f74-4eb9-9c94-ebaee79d0f6d", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 10:20:39Z], ~U[2026-03-11 10:20:39Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 10:20:39.048 [debug] QUERY OK source="sources" db=0.6ms queue=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:20:39.050 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=51.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 10:20:39.065 [debug] QUERY OK source="media_items" db=14.1ms idle=50.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "bf5bc870-6902-4690-9872-0292367d4fae", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 10:20:39Z], ~U[2026-03-11 10:20:39Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 10:20:39.100 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=97.2ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 10:20:39Z], ~U[2026-03-11 10:20:39Z], 1] 10:20:39.115 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=67.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 10:20:39.118 [debug] QUERY OK source="media_items" db=0.9ms idle=68.5ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 10:20:39.160 [debug] QUERY OK source="media_items" db=40.8ms queue=0.1ms idle=69.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 10:20:39.526 [debug] QUERY OK source="tasks" db=79.7ms queue=0.1ms idle=328.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3240, 1, ~U[2026-03-11 10:20:39Z], ~U[2026-03-11 10:20:39Z]] 10:20:39.562 [info] {"args":{"id":1},"id":3239,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":27498403,"event":"job:stop","queue_time":755465,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:20:41.534 [info] {"source":"oban","duration":239207,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:00.754 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:21:11.835 [info] {"source":"oban","duration":300380,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:41.838 [info] {"source":"oban","duration":2069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:49.217 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:22:00.755 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:22:11.841 [info] {"source":"oban","duration":1956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:41.843 [info] {"source":"oban","duration":1428,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:49.225 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:23:00.811 [info] {"source":"oban","duration":2361,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:23:11.846 [info] {"source":"oban","duration":1989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:23:41.848 [info] {"source":"oban","duration":1754,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:00.813 [info] {"source":"oban","duration":546,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:24:11.851 [info] {"source":"oban","duration":1638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:41.855 [info] {"source":"oban","duration":1820,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:00.816 [info] {"source":"oban","duration":720,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:25:11.858 [info] {"source":"oban","duration":2071,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:41.860 [info] {"source":"oban","duration":1764,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:26:00.817 [info] {"source":"oban","duration":396,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:26:11.864 [info] {"source":"oban","duration":1914,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:26:41.867 [info] {"source":"oban","duration":1949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:00.819 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:27:11.869 [info] {"source":"oban","duration":1568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:42.143 [info] {"source":"oban","duration":272017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 10:28:00.821 [info] {"source":"oban","duration":392,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:28:12.146 [info] {"source":"oban","duration":1945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:28:42.148 [info] {"source":"oban","duration":1578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:00.823 [info] {"source":"oban","duration":397,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:29:12.151 [info] {"source":"oban","duration":1509,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:42.154 [info] {"source":"oban","duration":2196,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:00.825 [info] {"source":"oban","duration":414,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:30:12.157 [info] {"source":"oban","duration":1905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:42.160 [info] {"source":"oban","duration":2119,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:00.827 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:31:12.163 [info] {"source":"oban","duration":2217,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:42.166 [info] {"source":"oban","duration":1923,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:49.285 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:32:00.829 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:32:12.169 [info] {"source":"oban","duration":1943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:42.172 [info] {"source":"oban","duration":1975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:49.307 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:33:00.831 [info] {"source":"oban","duration":848,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:33:12.174 [info] {"source":"oban","duration":1744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:33:42.177 [info] {"source":"oban","duration":1823,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:00.833 [info] {"source":"oban","duration":325,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:34:12.180 [info] {"source":"oban","duration":1370,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:42.182 [info] {"source":"oban","duration":1800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:00.834 [info] {"source":"oban","duration":638,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:35:12.185 [info] {"source":"oban","duration":1668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:42.189 [info] {"source":"oban","duration":1932,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:00.837 [info] {"source":"oban","duration":605,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:36:12.192 [info] {"source":"oban","duration":1868,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:42.194 [info] {"source":"oban","duration":1528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:37:00.838 [info] {"source":"oban","duration":618,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:37:12.197 [info] {"source":"oban","duration":2033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:37:42.199 [info] {"source":"oban","duration":1592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:00.841 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:38:12.202 [info] {"source":"oban","duration":1956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:42.204 [info] {"source":"oban","duration":1511,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:00.842 [info] {"source":"oban","duration":501,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:39:12.206 [info] {"source":"oban","duration":1545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:42.210 [info] {"source":"oban","duration":2103,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:00.844 [info] {"source":"oban","duration":689,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:40:12.213 [info] {"source":"oban","duration":2133,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:42.215 [info] {"source":"oban","duration":1682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:00.846 [info] {"source":"oban","duration":667,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:41:12.219 [info] {"source":"oban","duration":1739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:42.221 [info] {"source":"oban","duration":1836,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:49.375 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:42:00.848 [info] {"source":"oban","duration":459,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:42:12.225 [info] {"source":"oban","duration":1776,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:42.227 [info] {"source":"oban","duration":1585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:49.383 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:43:00.850 [info] {"source":"oban","duration":415,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:43:12.231 [info] {"source":"oban","duration":1912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:43:42.234 [info] {"source":"oban","duration":2204,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:00.852 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:44:12.237 [info] {"source":"oban","duration":2573,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:42.241 [info] {"source":"oban","duration":1905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:00.854 [info] {"source":"oban","duration":743,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:45:12.244 [info] {"source":"oban","duration":2211,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:42.247 [info] {"source":"oban","duration":1953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:00.856 [info] {"source":"oban","duration":802,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:46:12.249 [info] {"source":"oban","duration":1450,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:42.252 [info] {"source":"oban","duration":1902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:47:00.858 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:47:12.255 [info] {"source":"oban","duration":1893,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:47:42.258 [info] {"source":"oban","duration":2183,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:00.860 [info] {"source":"oban","duration":414,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:48:12.261 [info] {"source":"oban","duration":2120,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:42.264 [info] {"source":"oban","duration":2076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:00.862 [info] {"source":"oban","duration":417,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:49:12.268 [info] {"source":"oban","duration":2629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:42.270 [info] {"source":"oban","duration":1694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:52.288 [info] GET /sources/1/media/36581 10:49:52.447 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36581", "source_id" => "1"} Pipelines: [:browser] 10:49:52.631 [debug] QUERY OK source="media_items" db=30.1ms queue=0.3ms idle=458.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" = ?) [36581] 10:49:52.833 [info] GET /sources 10:49:52.834 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 10:49:52.836 [debug] QUERY OK source="sources" db=3.5ms queue=0.2ms idle=689.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:49:52.875 [debug] QUERY OK source="tasks" db=43.9ms queue=1.1ms idle=688.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [36581] 10:49:52.901 [debug] QUERY OK source="oban_jobs" db=22.7ms queue=0.5ms idle=735.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" = ?) [2373] 10:49:53.223 [debug] QUERY OK source="settings" db=12.3ms idle=579.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.226 [debug] QUERY OK source="settings" db=1.8ms queue=0.1ms idle=388.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.227 [debug] QUERY OK source="settings" db=13.2ms queue=0.3ms idle=930.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.228 [debug] QUERY OK source="settings" db=0.7ms idle=352.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.565 [debug] QUERY OK source="settings" db=1.8ms queue=0.1ms idle=661.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.566 [debug] QUERY OK source="settings" db=2.7ms queue=0.1ms idle=339.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.722 [debug] QUERY OK source="settings" db=1.0ms queue=1.6ms idle=492.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.798 [debug] QUERY OK source="settings" db=3.3ms queue=0.1ms idle=228.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:49:53.820 [debug] QUERY OK source="media_profiles" db=55.6ms queue=0.1ms idle=535.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:49:54.099 [debug] QUERY OK source="sources" db=90.6ms queue=0.1ms idle=442.7ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 10:49:54.484 [debug] QUERY OK source="sources" db=309.9ms queue=0.1ms idle=452.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", 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] 10:49:55.174 [info] Sent 200 in 2889ms 10:49:55.767 [info] Sent 200 in 2934ms 10:50:00.018 [info] {"source":"oban","duration":509,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:50:12.273 [info] {"source":"oban","duration":1670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:39.455 [info] {"args":{"id":1},"id":3240,"meta":{},"system_time":1773226239454619096,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:50:39.457 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1925.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:39.459 [debug] QUERY OK source="settings" db=1.0ms queue=0.4ms idle=1927.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:39.461 [debug] QUERY OK source="media_items" db=1.4ms idle=1017.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")))) [1] 10:50:39.463 [debug] QUERY OK source="media_items" db=0.8ms idle=15.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 10:50:39.465 [debug] QUERY OK source="media_profiles" db=1.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] 10:50:39.467 [debug] QUERY OK source="settings" db=0.5ms idle=9.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:39.573 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:50:39.574 [debug] Current batch of media processed. Will check again in 1000ms 10:50:39.575 [debug] QUERY OK source="settings" db=1.1ms queue=1.0ms idle=113.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:39.576 [debug] QUERY OK source="settings" db=0.8ms idle=113.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:39.577 [debug] QUERY OK source="settings" db=0.6ms idle=113.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:39.578 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/61/3d/613d85e21cf9f000c1ba6bd9690c9f3854d751b52dbab38b0191cdba34e83fde.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:50:40.575 [debug] Current batch of media processed. Will check again in 1000ms 10:50:41.576 [debug] Current batch of media processed. Will check again in 1000ms 10:50:42.277 [info] {"source":"oban","duration":2681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:42.577 [debug] Current batch of media processed. Will check again in 1000ms 10:50:43.578 [debug] Current batch of media processed. Will check again in 1000ms 10:50:44.594 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 10:50:44.597 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=1065.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:44.598 [debug] QUERY OK source="sources" db=0.7ms idle=1068.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:44.600 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=1069.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 10:50:44.645 [debug] QUERY OK source="media_items" db=43.8ms queue=0.1ms idle=1071.6ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "7fb7a823-5811-4231-98c0-423ee073247c", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 10:50:44Z], ~U[2026-03-11 10:50:44Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 10:50:44.647 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=185.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:44.648 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=50.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:44.685 [debug] QUERY OK source="media_items" db=1.6ms queue=33.9ms idle=50.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 [37332] 10:50:44.685 [debug] Current batch of media processed. Will check again in 1000ms 10:50:45.687 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 10:50:45.689 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1042.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:45.691 [debug] QUERY OK source="sources" db=1.3ms queue=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" = ?) [1] 10:50:45.693 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1042.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 10:50:45.698 [debug] QUERY OK source="media_items" db=3.4ms idle=1008.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "01fce44c-6327-4bcc-9ff4-0210b7a706fb", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 10:50:45Z], ~U[2026-03-11 10:50:45Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 10:50:45.700 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=235.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:45.702 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:45.704 [debug] QUERY OK source="media_items" db=0.9ms idle=11.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36910] 10:50:45.704 [debug] Current batch of media processed. Will check again in 1000ms 10:50:46.705 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 10:50:46.707 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1008.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:46.709 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=1007.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:46.712 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=1007.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 10:50:46.720 [debug] QUERY OK source="media_items" db=7.3ms idle=1008.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "d2558292-ad04-45c2-963c-962972dd660a", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 10:50:46Z], ~U[2026-03-11 10:50:46Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 10:50:46.722 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=254.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:46.723 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=15.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:46.724 [debug] QUERY OK source="media_items" db=0.6ms idle=14.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 [36578] 10:50:46.724 [debug] Current batch of media processed. Will check again in 1000ms 10:50:47.725 [debug] Current batch of media processed. Will check again in 1000ms 10:50:48.727 [debug] Current batch of media processed. Will check again in 1000ms 10:50:49.122 [info] GET /media_profiles 10:50:49.122 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 10:50:49.243 [debug] QUERY OK source="media_profiles" db=5.5ms queue=0.2ms idle=702.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 10:50:49.359 [debug] QUERY OK source="settings" db=2.4ms queue=0.1ms idle=821.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:49.378 [debug] QUERY OK source="settings" db=2.4ms queue=0.2ms idle=839.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:49.382 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=846.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:50:49.436 [info] Sent 200 in 311ms 10:50:49.556 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:50:49.729 [debug] Current batch of media processed. Will check again in 1000ms 10:50:50.730 [debug] Current batch of media processed. Will check again in 1000ms 10:50:51.731 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 10:50:51.733 [debug] QUERY OK source="sources" db=1.2ms idle=1179.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:51.734 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1180.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:51.736 [debug] QUERY OK source="media_items" db=0.8ms queue=0.5ms idle=1182.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 10:50:51.792 [debug] QUERY OK source="media_items" db=54.4ms idle=1159.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "193d30d2-d574-485f-bb29-b8fc17a7b4da", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 10:50:51Z], ~U[2026-03-11 10:50:51Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 10:50:51.794 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=212.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:51.798 [debug] QUERY OK source="media_profiles" db=3.1ms idle=61.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:51.799 [debug] QUERY OK source="media_items" db=0.5ms idle=63.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 [36579] 10:50:51.799 [debug] Current batch of media processed. Will check again in 1000ms 10:50:52.801 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 10:50:52.803 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1010.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:52.804 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1009.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:52.806 [debug] QUERY OK source="media_items" db=0.7ms queue=0.3ms idle=1007.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 10:50:52.812 [debug] QUERY OK source="media_items" db=4.9ms queue=0.1ms idle=1007.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "759a6945-fbe8-4c95-8ffe-40a73eed51e3", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 10:50:52Z], ~U[2026-03-11 10:50:52Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 10:50:52.813 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=230.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:52.815 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.5ms idle=10.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:52.816 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=11.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36580] 10:50:52.816 [debug] Current batch of media processed. Will check again in 1000ms 10:50:53.818 [debug] Current batch of media processed. Will check again in 1000ms 10:50:54.819 [debug] Current batch of media processed. Will check again in 1000ms 10:50:55.820 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 10:50:55.822 [debug] QUERY OK source="sources" db=0.7ms idle=1268.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:55.824 [debug] QUERY OK source="sources" db=1.5ms queue=0.2ms idle=1269.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:55.910 [debug] QUERY OK source="media_items" db=85.7ms queue=0.1ms idle=1271.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 10:50:56.016 [debug] QUERY OK source="media_items" db=52.1ms queue=0.2ms idle=1348.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "673673ef-c4fa-484f-b0de-bc72cd2c9872", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 10:50:55Z], ~U[2026-03-11 10:50:55Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 10:50:56.020 [debug] QUERY OK source="sources" db=0.8ms queue=0.2ms idle=423.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:56.022 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.3ms idle=199.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:56.023 [debug] QUERY OK source="media_items" db=0.7ms idle=198.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 [36581] 10:50:56.025 [debug] Current batch of media processed. Will check again in 1000ms 10:50:57.029 [debug] Current batch of media processed. Will check again in 1000ms 10:50:58.032 [debug] Current batch of media processed. Will check again in 1000ms 10:50:59.033 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 10:50:59.037 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=1480.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:50:59.039 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1482.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:59.040 [debug] QUERY OK source="media_items" db=0.5ms queue=0.5ms idle=1484.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 10:50:59.070 [debug] QUERY OK source="media_items" db=28.9ms idle=1435.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "1f9a6831-e77a-4f9f-bb6f-ae54d4fc9644", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 10:50:59Z], ~U[2026-03-11 10:50:59Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 10:50:59.074 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=463.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:50:59.075 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=36.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:50:59.076 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=36.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 [36582] 10:50:59.077 [debug] Current batch of media processed. Will check again in 1000ms 10:51:00.020 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:51:00.078 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 10:51:00.081 [debug] QUERY OK source="sources" db=2.7ms idle=1005.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:51:00.083 [debug] QUERY OK source="sources" db=0.8ms 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" = ?) [1] 10:51:00.085 [debug] QUERY OK source="media_items" db=1.3ms queue=0.4ms idle=1006.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 10:51:00.124 [debug] QUERY OK source="media_items" db=37.6ms idle=474.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "587e9470-f12f-4e95-b4c8-e007c627fd0d", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 10:51:00Z], ~U[2026-03-11 10:51:00Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 10:51:00.125 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=104.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:00.126 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=44.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:51:00.127 [debug] QUERY OK source="media_items" db=0.5ms idle=44.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 [36583] 10:51:00.128 [debug] Current batch of media processed. Will check again in 1000ms 10:51:01.129 [debug] Current batch of media processed. Will check again in 1000ms 10:51:02.132 [debug] Current batch of media processed. Will check again in 1000ms 10:51:03.133 [debug] Current batch of media processed. Will check again in 1000ms 10:51:04.134 [debug] Current batch of media processed. Will check again in 1000ms 10:51:05.137 [debug] Current batch of media processed. Will check again in 1000ms 10:51:06.140 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 10:51:06.149 [debug] QUERY OK source="sources" db=7.9ms queue=0.1ms idle=584.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:51:06.155 [debug] QUERY OK source="sources" db=2.9ms queue=2.6ms idle=593.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:06.162 [debug] QUERY OK source="media_items" db=5.8ms queue=0.4ms idle=599.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 10:51:06.263 [debug] QUERY OK source="media_items" db=94.9ms queue=0.1ms idle=607.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "41275fc0-c563-4212-818c-c729e3eb31d1", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 10:51:06Z], ~U[2026-03-11 10:51:06Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 10:51:06.271 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=616.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:06.275 [debug] QUERY OK source="media_profiles" db=4.0ms queue=0.1ms idle=122.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:51:06.279 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=121.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 [36439] 10:51:06.283 [debug] Current batch of media processed. Will check again in 1000ms 10:51:07.285 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "duration" => 1161, "filename" => "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", "id" => "VWScrqXj3bw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VWScrqXj3bw", "playlist_index" => 10, "timestamp" => 1771589123, "title" => "Gen. Naravane is Wrong on India-China Relations", "upload_date" => "20260220"} 10:51:07.287 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=1026.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:51:07.288 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1016.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.289 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1013.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 10:51:07.338 [debug] QUERY OK source="media_items" db=45.7ms queue=0.2ms idle=1011.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "a3bdf20b-d0ea-444d-8726-1ce3866f4350", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 10:51:07.342 [debug] QUERY OK source="sources" db=2.3ms idle=683.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.345 [debug] QUERY OK source="media_profiles" db=1.4ms queue=1.4ms idle=55.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:51:07.351 [debug] QUERY OK source="media_items" db=2.1ms queue=0.3ms idle=60.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 [36333] 10:51:07.352 [debug] Current batch of media processed. Will check again in 1000ms 10:51:07.364 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/61/3d/613d85e21cf9f000c1ba6bd9690c9f3854d751b52dbab38b0191cdba34e83fde.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 10:51:07.422 [debug] Gracefully stopping file follower 10:51:07.427 [debug] QUERY OK source="sources" db=4.5ms queue=0.2ms idle=133.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 10:51:07.430 [debug] QUERY OK source="sources" db=0.9ms queue=0.9ms idle=91.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.433 [debug] QUERY OK source="media_items" db=1.3ms queue=1.2ms idle=88.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 10:51:07.469 [debug] QUERY OK source="media_items" db=19.1ms queue=0.2ms idle=103.9ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "ed4ae8b0-14b3-4035-ad83-1ed59c76798e", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 10:51:07.473 [debug] QUERY OK source="sources" db=1.2ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.478 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=46.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 10:51:07.550 [debug] QUERY OK source="media_items" db=48.7ms idle=49.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "2645861c-1082-45bb-bd86-3447d84e1b6d", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 10:51:07.554 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=121.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.557 [debug] QUERY OK source="media_items" db=0.8ms queue=0.2ms idle=87.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 10:51:07.590 [debug] QUERY OK source="media_items" db=29.3ms queue=0.1ms idle=84.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "0e675e62-8f65-43d8-be85-a71534708e2e", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 10:51:07.650 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=170.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.653 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=123.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 10:51:07.691 [debug] QUERY OK source="media_items" db=36.3ms idle=99.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "b9bd3396-3d02-4c24-a0e7-202c7b134c63", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 10:51:07.705 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=116.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.710 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=56.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 10:51:07.737 [debug] QUERY OK source="media_items" db=25.7ms queue=0.1ms idle=57.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "1a71ad65-7f50-41ea-9036-7f2235602b7d", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 10:51:07.742 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=50.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.747 [debug] QUERY OK source="media_items" db=2.0ms queue=0.3ms idle=54.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 10:51:07.780 [debug] QUERY OK source="media_items" db=29.4ms queue=0.1ms idle=43.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "a65f333e-54fa-470d-9db3-ace818a7e622", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 10:51:07.788 [debug] QUERY OK source="sources" db=3.4ms queue=0.1ms idle=74.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.791 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=53.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 10:51:07.823 [debug] QUERY OK source="media_items" db=31.0ms idle=49.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "39fbf75f-3290-4a3c-83a0-321acf8e47a0", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 10:51:07.828 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=79.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.830 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=50.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 10:51:07.855 [debug] QUERY OK source="media_items" db=23.8ms queue=0.1ms idle=42.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "8469b99d-e18e-49f0-b34b-19fab5edc71f", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 10:51:07.857 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=64.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:07.861 [debug] QUERY OK source="media_items" db=3.0ms idle=35.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 10:51:07.907 [debug] QUERY OK source="media_items" db=43.9ms idle=34.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "ae289d0f-06a0-4de8-a7a4-7c262efb8405", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 10:51:07.930 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms 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" = ?) [1] 10:51:07.933 [debug] QUERY OK source="media_items" db=0.8ms queue=0.3ms idle=77.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 10:51:08.141 [debug] QUERY OK source="media_items" db=206.2ms idle=77.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "c929a004-9ca0-426d-8bdd-2eb64efbecb4", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 10:51:07Z], ~U[2026-03-11 10:51:07Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 10:51:08.202 [debug] QUERY OK source="sources" db=22.5ms queue=0.3ms idle=317.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 10:51:08Z], ~U[2026-03-11 10:51:08Z], 1] 10:51:08.204 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=296.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")))) [1] 10:51:08.205 [debug] QUERY OK source="media_items" db=1.0ms idle=274.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")))) [1] 10:51:08.206 [debug] QUERY OK source="media_items" db=0.5ms idle=272.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 10:51:08.403 [debug] QUERY OK source="tasks" db=37.4ms idle=162.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3241, 1, ~U[2026-03-11 10:51:08Z], ~U[2026-03-11 10:51:08Z]] 10:51:08.412 [info] {"args":{"id":1},"id":3240,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":28949553,"event":"job:stop","queue_time":178865,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:51:14.341 [info] GET /sources/1/media/36582 10:51:14.502 [info] GET /sources/1/media/37332 10:51:15.020 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36582", "source_id" => "1"} Pipelines: [:browser] 10:51:15.020 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "37332", "source_id" => "1"} Pipelines: [:browser] 10:51:15.238 [info] {"source":"oban","duration":2742021,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:51:16.006 [debug] QUERY OK source="media_items" db=66.0ms queue=0.7ms idle=1598.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" = ?) [36582] 10:51:16.077 [debug] QUERY OK source="media_items" db=91.2ms queue=0.3ms idle=1644.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" = ?) [37332] 10:51:18.341 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=3319.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:18.415 [debug] QUERY OK source="tasks" db=498.7ms queue=0.3ms idle=3574.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [37332] 10:51:18.761 [debug] QUERY OK source="tasks" db=6.7ms idle=2677.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" [36582] 10:51:18.762 [debug] QUERY OK source="sources" db=0.5ms queue=0.4ms idle=421.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:18.887 [debug] QUERY OK source="oban_jobs" db=168.9ms queue=27.2ms idle=2685.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 (?,?)) [2425, 2426] 10:51:18.895 [debug] QUERY OK source="oban_jobs" db=62.8ms queue=0.2ms idle=491.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" = ?) [2374] 10:51:19.441 [debug] QUERY OK source="settings" db=62.5ms queue=0.1ms idle=617.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:19.442 [debug] QUERY OK source="settings" db=69.5ms queue=166.8ms idle=790.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:19.443 [debug] QUERY OK source="settings" db=0.7ms queue=0.5ms idle=554.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:19.511 [debug] QUERY OK source="settings" db=69.1ms queue=0.1ms idle=546.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:19.642 [debug] QUERY OK source="settings" db=130.4ms queue=0.6ms idle=83.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:20.181 [debug] QUERY OK source="settings" db=0.8ms idle=70.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:21.491 [info] GET /sources/1/media/36910 10:51:21.491 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36910", "source_id" => "1"} Pipelines: [:browser] 10:51:21.491 [info] GET /app_info 10:51:21.616 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 10:51:21.886 [info] Exqlite.Connection (#PID<0.2320.0>) disconnected: ** (DBConnection.ConnectionError) client #PID<0.142107.0> exited 10:51:22.298 [debug] QUERY OK source="media_items" db=411.4ms queue=393.9ms idle=1980.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" = ?) [36910] 10:51:22.300 [debug] QUERY OK source="settings" db=395.1ms queue=0.4ms idle=2391.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.325 [debug] QUERY OK source="settings" db=25.3ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.331 [debug] QUERY OK source="tasks" db=31.8ms idle=394.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" [36910] 10:51:22.331 [debug] QUERY OK source="settings" db=1.1ms queue=3.4ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.372 [debug] QUERY OK source="sources" db=73.2ms idle=1.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:51:22.373 [debug] QUERY OK source="settings" db=1.1ms idle=41.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.378 [debug] QUERY OK source="settings" db=1.4ms queue=2.8ms idle=42.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.478 [debug] QUERY OK source="oban_jobs" db=101.8ms queue=3.2ms idle=41.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" = ?) [2400] 10:51:22.482 [info] Sent 200 in 990ms 10:51:22.527 [debug] QUERY OK source="settings" db=45.0ms queue=3.0ms idle=106.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.546 [debug] QUERY OK source="settings" db=17.6ms queue=1.9ms idle=154.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.549 [debug] QUERY OK source="settings" db=1.3ms idle=170.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:22.950 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=469.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:51:23.099 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 10:51:24.628 [info] Sent 200 in 3123ms 10:51:42.430 [info] GET /settings 10:51:42.430 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 10:51:42.431 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=1039.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:42.434 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=298.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:42.435 [debug] QUERY OK source="settings" db=0.8ms 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 [] 10:51:42.437 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=301.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:51:42.860 [info] Sent 200 in 430ms 10:51:45.942 [info] {"source":"oban","duration":1897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:00.022 [info] {"source":"oban","duration":455,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:52:15.947 [info] {"source":"oban","duration":3233,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:45.950 [info] {"source":"oban","duration":1958,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:49.770 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:52:52.690 [info] GET /sources/1/media/36583 10:52:52.690 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36583", "source_id" => "1"} Pipelines: [:browser] 10:52:52.691 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1555.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" = ?) [36583] 10:52:52.693 [debug] QUERY OK source="tasks" db=0.4ms queue=0.3ms idle=1557.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" [36583] 10:52:52.693 [debug] QUERY OK source="sources" db=0.6ms idle=1558.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:52:52.695 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=1109.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" = ?) [2375] 10:52:52.696 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=106.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:52:52.697 [debug] QUERY OK source="settings" db=0.1ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:52:52.698 [debug] QUERY OK source="settings" db=0.4ms 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 [] 10:52:52.700 [debug] QUERY OK source="media_profiles" db=0.7ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:52:52.719 [info] Sent 200 in 29ms 10:53:00.025 [info] {"source":"oban","duration":950,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:53:15.952 [info] {"source":"oban","duration":1393,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:19.673 [info] GET /sources/1 10:53:19.673 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 10:53:19.734 [debug] QUERY OK source="sources" db=1.4ms queue=0.3ms idle=1597.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:53:19.738 [debug] QUERY OK source="media_profiles" db=2.4ms queue=0.2ms idle=1078.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:53:21.398 [debug] QUERY OK source="tasks" db=1645.9ms queue=0.3ms idle=616.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 10:53:21.399 [debug] QUERY OK source="oban_jobs" db=0.7ms queue=0.1ms idle=628.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" = ?) [3241] 10:53:21.434 [debug] QUERY OK source="settings" db=1.2ms queue=0.3ms idle=297.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:21.435 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms idle=299.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:21.437 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms idle=301.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:21.775 [debug] QUERY OK source="sources" db=2.8ms queue=0.1ms idle=372.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:53:21.859 [debug] QUERY OK source="media_items" db=77.0ms queue=0.1ms idle=347.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 10:53:21.978 [debug] QUERY OK source="media_items" db=42.1ms queue=65.8ms idle=435.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 10:53:22.015 [debug] QUERY OK source="sources" db=0.3ms idle=577.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:53:22.022 [debug] QUERY OK source="media_items" db=4.4ms queue=0.1ms idle=242.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 10:53:22.050 [debug] QUERY OK source="media_items" db=27.3ms idle=245.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 10:53:22.068 [debug] QUERY OK source="sources" db=0.6ms queue=1.3ms idle=209.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 10:53:22.105 [debug] QUERY OK source="media_items" db=0.9ms queue=0.3ms idle=125.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 10:53:22.139 [debug] QUERY OK source="media_items" db=29.1ms queue=1.3ms idle=93.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 10:53:22.169 [info] Sent 200 in 2495ms 10:53:45.956 [info] {"source":"oban","duration":2041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:00.026 [info] {"source":"oban","duration":437,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:54:16.097 [info] {"source":"oban","duration":140142,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:46.100 [info] {"source":"oban","duration":2219,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:00.027 [info] {"source":"oban","duration":460,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:55:16.103 [info] {"source":"oban","duration":2098,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:46.105 [info] {"source":"oban","duration":1777,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:00.030 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:56:16.109 [info] {"source":"oban","duration":2403,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:46.111 [info] {"source":"oban","duration":1862,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:00.050 [info] {"source":"oban","duration":940,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:57:16.172 [info] {"source":"oban","duration":59131,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:46.194 [info] {"source":"oban","duration":1857,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:00.051 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:58:16.196 [info] {"source":"oban","duration":1332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:46.199 [info] {"source":"oban","duration":2371,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:00.053 [info] {"source":"oban","duration":647,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:59:16.202 [info] {"source":"oban","duration":2002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:46.205 [info] {"source":"oban","duration":1930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:49.893 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 11:00:00.081 [info] {"source":"oban","duration":878,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:00:16.387 [info] {"source":"oban","duration":181463,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 11:00:46.390 [info] {"source":"oban","duration":1957,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:00.177 [info] {"source":"oban","duration":38744,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:01:16.392 [info] {"source":"oban","duration":1921,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:46.395 [info] {"source":"oban","duration":1469,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:00.180 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:02:16.397 [info] {"source":"oban","duration":1520,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:46.400 [info] {"source":"oban","duration":1744,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:49.978 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 11:03:00.181 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:03:16.404 [info] {"source":"oban","duration":2087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:03:46.406 [info] {"source":"oban","duration":1608,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:00.183 [info] {"source":"oban","duration":469,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:04:16.409 [info] {"source":"oban","duration":1466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:46.412 [info] {"source":"oban","duration":2056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:00.185 [info] {"source":"oban","duration":356,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:05:16.414 [info] {"source":"oban","duration":1390,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:46.416 [info] {"source":"oban","duration":1867,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:06:00.187 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:06:16.420 [info] {"source":"oban","duration":2449,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:06:46.424 [info] {"source":"oban","duration":1978,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:00.190 [info] {"source":"oban","duration":1258,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:07:16.426 [info] {"source":"oban","duration":1758,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:46.429 [info] {"source":"oban","duration":1642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:00.192 [info] {"source":"oban","duration":571,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:08:16.433 [info] {"source":"oban","duration":1986,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:46.436 [info] {"source":"oban","duration":2295,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:00.194 [info] {"source":"oban","duration":524,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:09:16.438 [info] {"source":"oban","duration":1760,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:46.441 [info] {"source":"oban","duration":1904,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:10:00.196 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:10:16.444 [info] {"source":"oban","duration":1593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:10:46.448 [info] {"source":"oban","duration":1931,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:00.198 [info] {"source":"oban","duration":398,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:11:16.450 [info] {"source":"oban","duration":1560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:46.454 [info] {"source":"oban","duration":2286,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:50.049 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 11:12:00.200 [info] {"source":"oban","duration":450,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:12:16.456 [info] {"source":"oban","duration":1565,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:12:46.460 [info] {"source":"oban","duration":2144,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:12:50.058 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 11:13:00.203 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:13:16.463 [info] {"source":"oban","duration":1991,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:13:46.465 [info] {"source":"oban","duration":1901,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:00.205 [info] {"source":"oban","duration":1186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:14:16.469 [info] {"source":"oban","duration":2070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:46.471 [info] {"source":"oban","duration":1711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:00.206 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:15:16.475 [info] {"source":"oban","duration":1879,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:46.477 [info] {"source":"oban","duration":1644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:00.208 [info] {"source":"oban","duration":724,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:16:16.480 [info] {"source":"oban","duration":1918,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:46.483 [info] {"source":"oban","duration":1466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:00.210 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:17:16.485 [info] {"source":"oban","duration":1501,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:46.487 [info] {"source":"oban","duration":1422,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:00.211 [info] {"source":"oban","duration":386,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:18:16.489 [info] {"source":"oban","duration":1487,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:46.491 [info] {"source":"oban","duration":1476,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:00.215 [info] {"source":"oban","duration":1429,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:19:16.494 [info] {"source":"oban","duration":2131,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:46.496 [info] {"source":"oban","duration":1644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:00.217 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:20:16.499 [info] {"source":"oban","duration":1500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:46.502 [info] {"source":"oban","duration":2080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:00.218 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:21:08.945 [info] {"args":{"id":1},"id":3241,"meta":{},"system_time":1773228068832779433,"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"]} 11:21:09.047 [debug] QUERY OK source="sources" db=23.5ms queue=0.1ms idle=690.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:09.077 [debug] QUERY OK source="settings" db=28.9ms queue=0.1ms idle=714.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:21:09.392 [debug] QUERY OK source="media_items" db=312.9ms queue=0.1ms idle=746.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")))) [1] 11:21:09.476 [debug] QUERY OK source="media_items" db=81.9ms queue=0.8ms idle=600.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 11:21:09.480 [debug] QUERY OK source="media_profiles" db=3.0ms queue=0.2ms idle=645.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] 11:21:09.641 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=593.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:21:10.286 [debug] Current batch of media processed. Will check again in 1000ms 11:21:10.289 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 11:21:10.292 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms idle=898.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:21:10.294 [debug] QUERY OK source="settings" db=1.8ms idle=816.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:21:10.297 [debug] QUERY OK source="settings" db=1.0ms queue=1.0ms idle=814.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:21:10.439 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c5/00/c50062ecf25d05f22a4fbd8ef6ee203b886611fffcf14ef1db338e6ca36fb534.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 11:21:11.287 [debug] Current batch of media processed. Will check again in 1000ms 11:21:12.289 [debug] Current batch of media processed. Will check again in 1000ms 11:21:13.290 [debug] Current batch of media processed. Will check again in 1000ms 11:21:14.291 [debug] Current batch of media processed. Will check again in 1000ms 11:21:15.293 [debug] Current batch of media processed. Will check again in 1000ms 11:21:16.294 [debug] Current batch of media processed. Will check again in 1000ms 11:21:16.692 [info] {"source":"oban","duration":189343,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:17.295 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 11:21:17.298 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1917.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:17.300 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1919.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:17.305 [debug] QUERY OK source="media_items" db=4.0ms idle=1421.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 11:21:17.386 [debug] QUERY OK source="media_items" db=66.9ms queue=0.2ms idle=626.9ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "ca1fe1f1-807f-45d9-9c72-16624fd38c9b", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 11:21:17Z], ~U[2026-03-11 11:21:17Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 11:21:17.389 [debug] QUERY OK source="sources" db=1.0ms queue=0.6ms idle=505.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:17.391 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=91.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] 11:21:17.393 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=91.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 [37332] 11:21:17.394 [debug] Current batch of media processed. Will check again in 1000ms 11:21:18.472 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 11:21:18.499 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1112.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:18.558 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=1168.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:18.561 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=1168.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 11:21:18.643 [debug] QUERY OK source="media_items" db=81.6ms idle=1168.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "c437d3fe-0288-4c5a-bd09-53a065e3f7e5", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 11:21:18Z], ~U[2026-03-11 11:21:18Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 11:21:18.647 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=759.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:18.650 [debug] QUERY OK source="media_profiles" db=1.1ms queue=1.3ms 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] 11:21:18.653 [debug] QUERY OK source="media_items" db=2.5ms idle=92.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 [36910] 11:21:18.654 [debug] Current batch of media processed. Will check again in 1000ms 11:21:19.656 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 11:21:19.658 [debug] QUERY OK source="sources" db=1.1ms idle=1013.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:19.659 [debug] QUERY OK source="sources" db=0.4ms idle=1011.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:19.661 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1009.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 11:21:19.691 [debug] QUERY OK source="media_items" db=29.3ms idle=1007.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "c691e5e9-5d45-42d9-b06a-ace81919a387", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 11:21:19Z], ~U[2026-03-11 11:21:19Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 11:21:19.711 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=820.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:19.713 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=54.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:21:19.715 [debug] QUERY OK source="media_items" db=1.0ms idle=54.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 [36578] 11:21:19.715 [debug] Current batch of media processed. Will check again in 1000ms 11:21:20.717 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 11:21:20.766 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1074.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:20.767 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms 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" = ?) [1] 11:21:20.769 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=1054.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 11:21:20.872 [debug] QUERY OK source="media_items" db=101.0ms queue=0.1ms idle=1055.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "6ef8f2ff-f507-4a66-aba1-63f818e354cf", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 11:21:20Z], ~U[2026-03-11 11:21:20Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 11:21:20.874 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=981.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:20.876 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=109.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] 11:21:20.891 [debug] QUERY OK source="media_items" db=14.4ms queue=0.1ms idle=108.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 [36579] 11:21:20.892 [debug] Current batch of media processed. Will check again in 1000ms 11:21:21.893 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 11:21:21.895 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1022.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:21.897 [debug] QUERY OK source="sources" db=2.1ms idle=1019.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:21.899 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1006.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 11:21:22.091 [debug] QUERY OK source="media_items" db=191.0ms idle=1006.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "ec33ef35-5683-40c9-8afb-a27b603a9214", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 11:21:21Z], ~U[2026-03-11 11:21:21Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 11:21:22.094 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=197.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:22.097 [debug] QUERY OK source="media_profiles" db=1.2ms decode=0.4ms queue=0.1ms idle=197.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] 11:21:22.099 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=200.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 [36580] 11:21:22.100 [debug] Current batch of media processed. Will check again in 1000ms 11:21:23.101 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 11:21:23.103 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1011.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:23.105 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1009.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:23.107 [debug] QUERY OK source="media_items" db=0.6ms queue=0.6ms idle=1008.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 11:21:23.141 [debug] QUERY OK source="media_items" db=32.5ms idle=1008.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "c081415e-44d6-44d3-9a7d-4773815549fc", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 11:21:23Z], ~U[2026-03-11 11:21:23Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 11:21:23.143 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=241.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:23.145 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=40.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] 11:21:23.147 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=41.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 [36581] 11:21:23.147 [debug] Current batch of media processed. Will check again in 1000ms 11:21:24.164 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 11:21:24.165 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1024.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:24.167 [debug] QUERY OK source="sources" db=1.2ms idle=1022.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:24.169 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1022.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 11:21:24.209 [debug] QUERY OK source="media_items" db=37.4ms idle=1022.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "4720c3f4-d6a7-4fd3-9bd3-f0f4d8ee3046", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 11:21:24Z], ~U[2026-03-11 11:21:24Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 11:21:24.211 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=307.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:24.215 [debug] QUERY OK source="media_profiles" db=2.6ms queue=0.3ms idle=46.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:21:24.217 [debug] QUERY OK source="media_items" db=1.1ms idle=48.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 [36582] 11:21:24.219 [debug] Current batch of media processed. Will check again in 1000ms 11:21:25.220 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 11:21:25.221 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1013.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:25.223 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1011.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:25.225 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1008.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 11:21:25.247 [debug] QUERY OK source="media_items" db=21.5ms idle=1008.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "f52e4b88-b36e-411a-9dcf-61ee64852549", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 11:21:25Z], ~U[2026-03-11 11:21:25Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 11:21:25.249 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=344.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:25.250 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=27.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] 11:21:25.252 [debug] QUERY OK source="media_items" db=1.0ms idle=27.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 [36583] 11:21:25.252 [debug] Current batch of media processed. Will check again in 1000ms 11:21:26.255 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 11:21:26.256 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:26.257 [debug] QUERY OK source="sources" db=0.7ms idle=1007.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.259 [debug] QUERY OK source="media_items" db=1.0ms idle=1007.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 11:21:26.404 [debug] QUERY OK source="media_items" db=143.8ms idle=1007.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "c1e76f77-1d01-4ead-8134-9a0901e413a7", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 11:21:26Z], ~U[2026-03-11 11:21:26Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 11:21:26.407 [debug] QUERY OK source="sources" db=2.7ms queue=0.1ms idle=498.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.410 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=151.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] 11:21:26.413 [debug] QUERY OK source="media_items" db=2.4ms idle=153.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 [36439] 11:21:26.415 [debug] Current batch of media processed. Will check again in 1000ms 11:21:26.806 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c5/00/c50062ecf25d05f22a4fbd8ef6ee203b886611fffcf14ef1db338e6ca36fb534.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 11:21:26.842 [debug] Gracefully stopping file follower 11:21:26.844 [debug] QUERY OK source="sources" db=1.8ms idle=583.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:21:26.846 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=441.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.848 [debug] QUERY OK source="media_items" db=1.4ms idle=438.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 11:21:26.865 [debug] QUERY OK source="media_items" db=16.2ms idle=438.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "dc5fd243-79a3-40b0-834d-38b6e7f1eb94", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 11:21:26Z], ~U[2026-03-11 11:21:26Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 11:21:26.866 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=451.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.867 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=21.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 11:21:26.890 [debug] QUERY OK source="media_items" db=21.6ms idle=22.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "f46e7190-c9b9-48c0-9f28-b4ef90f5b353", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 11:21:26Z], ~U[2026-03-11 11:21:26Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 11:21:26.892 [debug] QUERY OK source="sources" db=0.6ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.894 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=27.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 11:21:26.917 [debug] QUERY OK source="media_items" db=21.7ms queue=0.1ms idle=28.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "837376a1-b9df-44e7-8afb-c07f065083e8", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 11:21:26Z], ~U[2026-03-11 11:21:26Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 11:21:26.919 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=27.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:26.982 [debug] QUERY OK source="media_items" db=1.3ms queue=0.3ms idle=88.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 11:21:27.005 [debug] QUERY OK source="media_items" db=22.1ms idle=88.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "479a239b-44bc-4cc3-a7fe-ebddad2958dc", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 11:21:26Z], ~U[2026-03-11 11:21:26Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 11:21:27.007 [debug] QUERY OK source="sources" db=0.9ms queue=0.3ms idle=97.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.009 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=90.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 11:21:27.030 [debug] QUERY OK source="media_items" db=20.1ms idle=90.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "ff13c5f6-f8af-4fcf-a868-098d96c55108", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 11:21:27.072 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=88.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.076 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=69.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 11:21:27.106 [debug] QUERY OK source="media_items" db=21.1ms queue=0.1ms idle=71.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "ab0a5495-7334-4bc1-9478-e662c2fadf19", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 11:21:27.109 [debug] QUERY OK source="sources" db=0.6ms queue=0.3ms idle=99.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.112 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=81.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 11:21:27.134 [debug] QUERY OK source="media_items" db=17.8ms queue=0.1ms idle=40.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "1d6bcfd0-a4c9-47be-a237-3c5e66376f53", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 11:21:27.135 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=58.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.137 [debug] QUERY OK source="media_items" db=1.1ms idle=36.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 11:21:27.156 [debug] QUERY OK source="media_items" db=18.7ms idle=28.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "6beb526f-86b9-4e44-9a86-5d32070d1050", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 11:21:27.159 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=46.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.163 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=31.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 11:21:27.192 [debug] QUERY OK source="media_items" db=26.8ms idle=28.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "a8163d00-1452-4363-b0ad-9a5e37ee2ec0", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 11:21:27.225 [debug] QUERY OK source="sources" db=0.8ms queue=0.7ms idle=86.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:21:27.227 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=69.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 11:21:27.245 [debug] QUERY OK source="media_items" db=17.1ms idle=68.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "765919a2-6745-44e9-8584-3d1e00778425", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 11:21:27.249 [debug] QUERY OK source="sources" db=2.6ms idle=83.1ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z], 1] 11:21:27.251 [debug] QUERY OK source="media_items" db=2.2ms idle=58.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 11:21:27.254 [debug] QUERY OK source="media_items" db=1.4ms idle=26.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")))) [1] 11:21:27.255 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=26.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 11:21:27.352 [debug] QUERY OK source="tasks" db=90.3ms idle=10.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3242, 1, ~U[2026-03-11 11:21:27Z], ~U[2026-03-11 11:21:27Z]] 11:21:27.358 [info] {"args":{"id":1},"id":3241,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":18520043,"event":"job:stop","queue_time":517546,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 11:21:46.694 [info] {"source":"oban","duration":1785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:00.220 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:22:16.698 [info] {"source":"oban","duration":2110,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:46.701 [info] {"source":"oban","duration":2103,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:23:00.223 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:23:16.728 [info] {"source":"oban","duration":2173,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:23:46.731 [info] {"source":"oban","duration":1895,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:00.224 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:24:16.734 [info] {"source":"oban","duration":1772,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:46.736 [info] {"source":"oban","duration":1466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:00.226 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:25:16.738 [info] {"source":"oban","duration":1781,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:46.741 [info] {"source":"oban","duration":1912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:00.228 [info] {"source":"oban","duration":465,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:26:16.744 [info] {"source":"oban","duration":1762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:46.747 [info] {"source":"oban","duration":1479,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:00.230 [info] {"source":"oban","duration":822,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:27:16.750 [info] {"source":"oban","duration":1528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:46.753 [info] {"source":"oban","duration":1751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:00.232 [info] {"source":"oban","duration":430,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:28:16.757 [info] {"source":"oban","duration":2269,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:46.759 [info] {"source":"oban","duration":1762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:00.234 [info] {"source":"oban","duration":314,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:29:16.763 [info] {"source":"oban","duration":2067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:46.765 [info] {"source":"oban","duration":1301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:00.235 [info] {"source":"oban","duration":703,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:30:16.768 [info] {"source":"oban","duration":1638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:46.772 [info] {"source":"oban","duration":2049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:00.239 [info] {"source":"oban","duration":1153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:31:16.775 [info] {"source":"oban","duration":1865,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:46.777 [info] {"source":"oban","duration":1674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:50.228 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 11:32:00.240 [info] {"source":"oban","duration":483,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:32:16.781 [info] {"source":"oban","duration":2364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:32:46.784 [info] {"source":"oban","duration":1782,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:00.242 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:33:16.788 [info] {"source":"oban","duration":2497,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:47.000 [info] {"source":"oban","duration":210898,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 11:33:50.288 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 11:34:00.245 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:34:17.082 [info] {"source":"oban","duration":79860,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:34:47.087 [info] {"source":"oban","duration":4380,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:00.280 [info] {"source":"oban","duration":818,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:35:17.090 [info] {"source":"oban","duration":1748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:47.094 [info] {"source":"oban","duration":2152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:00.283 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:36:17.097 [info] {"source":"oban","duration":2604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:47.100 [info] {"source":"oban","duration":1314,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:00.285 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:37:17.103 [info] {"source":"oban","duration":1956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:47.107 [info] {"source":"oban","duration":2031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:00.286 [info] {"source":"oban","duration":931,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:38:17.109 [info] {"source":"oban","duration":1786,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:47.112 [info] {"source":"oban","duration":1696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:00.288 [info] {"source":"oban","duration":419,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:39:17.116 [info] {"source":"oban","duration":2078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:47.118 [info] {"source":"oban","duration":1773,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:00.291 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:40:17.136 [info] {"source":"oban","duration":1594,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:47.139 [info] {"source":"oban","duration":1747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:00.292 [info] {"source":"oban","duration":513,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:41:17.142 [info] {"source":"oban","duration":1710,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:47.145 [info] {"source":"oban","duration":1804,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:50.345 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 11:42:00.294 [info] {"source":"oban","duration":565,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:42:17.148 [info] {"source":"oban","duration":1303,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:42:47.150 [info] {"source":"oban","duration":1687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:00.296 [info] {"source":"oban","duration":669,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:43:17.153 [info] {"source":"oban","duration":1386,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:47.155 [info] {"source":"oban","duration":1739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:50.360 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 11:44:00.299 [info] {"source":"oban","duration":787,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:44:17.158 [info] {"source":"oban","duration":1567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:44:47.160 [info] {"source":"oban","duration":1767,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:00.300 [info] {"source":"oban","duration":307,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:45:17.164 [info] {"source":"oban","duration":1752,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:47.166 [info] {"source":"oban","duration":1756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:00.301 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:46:17.169 [info] {"source":"oban","duration":1688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:47.172 [info] {"source":"oban","duration":1692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:00.303 [info] {"source":"oban","duration":652,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:47:17.175 [info] {"source":"oban","duration":1656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:47.178 [info] {"source":"oban","duration":1521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:00.305 [info] {"source":"oban","duration":426,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:48:17.182 [info] {"source":"oban","duration":1938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:47.184 [info] {"source":"oban","duration":1599,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:00.307 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:49:17.188 [info] {"source":"oban","duration":2364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:47.191 [info] {"source":"oban","duration":2040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:00.309 [info] {"source":"oban","duration":406,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:50:17.194 [info] {"source":"oban","duration":2025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:47.196 [info] {"source":"oban","duration":1521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:00.312 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:51:17.199 [info] {"source":"oban","duration":1857,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:28.029 [info] {"args":{"id":1},"id":3242,"meta":{},"system_time":1773229888029093815,"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"]} 11:51:28.032 [debug] QUERY OK source="sources" db=1.3ms idle=1551.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:28.060 [debug] QUERY OK source="settings" db=28.0ms idle=1553.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:28.419 [debug] QUERY OK source="media_items" db=357.0ms queue=0.1ms idle=1066.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")))) [1] 11:51:28.464 [debug] QUERY OK source="media_items" db=24.8ms queue=20.3ms idle=395.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 11:51:28.582 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.3ms idle=551.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] 11:51:28.585 [debug] QUERY OK source="settings" db=0.8ms idle=552.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:28.703 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 11:51:28.705 [debug] Current batch of media processed. Will check again in 1000ms 11:51:28.706 [debug] QUERY OK source="settings" db=2.0ms queue=0.2ms idle=643.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:28.709 [debug] QUERY OK source="settings" db=1.8ms queue=0.1ms idle=288.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:28.710 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=244.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:28.727 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/2e/d9/2ed9aed7bf178ce7c4eb2c848a8f8e3925bdf7d4cd2c5f742bcd9761ffaec0d8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 11:51:29.706 [debug] Current batch of media processed. Will check again in 1000ms 11:51:30.707 [debug] Current batch of media processed. Will check again in 1000ms 11:51:31.709 [debug] Current batch of media processed. Will check again in 1000ms 11:51:32.710 [debug] Current batch of media processed. Will check again in 1000ms 11:51:33.711 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 11:51:33.713 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1132.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:33.715 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1134.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:33.769 [debug] QUERY OK source="media_items" db=52.4ms queue=0.2ms idle=1136.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 11:51:33.853 [debug] QUERY OK source="media_items" db=80.3ms queue=0.1ms idle=1192.9ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "61355b01-6e17-4d8f-ae4b-2de340712dcd", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 11:51:33Z], ~U[2026-03-11 11:51:33Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 11:51:33.855 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=815.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:33.858 [debug] QUERY OK source="media_profiles" db=0.8ms queue=1.0ms idle=143.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] 11:51:33.891 [debug] QUERY OK source="media_items" db=1.5ms queue=12.9ms idle=161.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 [37332] 11:51:33.892 [debug] Current batch of media processed. Will check again in 1000ms 11:51:34.893 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 11:51:34.960 [debug] QUERY OK source="sources" db=1.0ms queue=0.2ms idle=1106.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:34.961 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1105.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:34.964 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1104.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 11:51:34.984 [debug] QUERY OK source="media_items" db=19.1ms idle=1073.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "8093f68c-9b7b-4a4b-909c-665743ed03c2", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 11:51:34Z], ~U[2026-03-11 11:51:34Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 11:51:34.986 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:34.987 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=26.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:51:34.991 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=28.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 [36910] 11:51:34.991 [debug] Current batch of media processed. Will check again in 1000ms 11:51:35.993 [debug] Current batch of media processed. Will check again in 1000ms 11:51:36.995 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 11:51:37.017 [debug] QUERY OK source="sources" db=21.4ms queue=0.1ms idle=944.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:37.019 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=435.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:37.023 [debug] QUERY OK source="media_items" db=3.1ms queue=0.1ms idle=437.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 11:51:37.087 [debug] QUERY OK source="media_items" db=62.0ms idle=441.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "d73ead6a-be8c-4c75-af8e-eb80b3f73224", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 11:51:37Z], ~U[2026-03-11 11:51:37Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 11:51:37.088 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [1] 11:51:37.090 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=69.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] 11:51:37.119 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=93.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 [36578] 11:51:37.119 [debug] Current batch of media processed. Will check again in 1000ms 11:51:38.120 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 11:51:38.143 [debug] QUERY OK source="sources" db=2.0ms queue=0.2ms idle=1054.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:38.144 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1055.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:38.146 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1055.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 11:51:38.233 [debug] QUERY OK source="media_items" db=65.7ms queue=0.1ms idle=1047.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "3370ba64-ac86-4fe2-9019-1d8c2000bd5e", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 11:51:38Z], ~U[2026-03-11 11:51:38Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 11:51:38.234 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=178.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:38.235 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=91.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] 11:51:38.236 [debug] QUERY OK source="media_items" db=0.6ms idle=91.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 [36579] 11:51:38.236 [debug] Current batch of media processed. Will check again in 1000ms 11:51:39.239 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 11:51:39.270 [debug] QUERY OK source="sources" db=6.2ms queue=0.5ms idle=1030.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:39.275 [debug] QUERY OK source="sources" db=2.0ms queue=0.9ms idle=1037.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:39.279 [debug] QUERY OK source="media_items" db=1.5ms queue=0.9ms idle=1040.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 11:51:39.342 [debug] QUERY OK source="media_items" db=58.0ms queue=0.3ms idle=1046.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "db632d84-3c17-42cf-aff5-094f1b0b9a80", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 11:51:39Z], ~U[2026-03-11 11:51:39Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 11:51:39.344 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=283.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:39.345 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=74.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] 11:51:39.346 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=70.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 [36580] 11:51:39.347 [debug] Current batch of media processed. Will check again in 1000ms 11:51:40.348 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 11:51:40.352 [debug] QUERY OK source="sources" db=2.6ms queue=0.2ms idle=1008.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:40.355 [debug] QUERY OK source="sources" db=1.0ms queue=1.0ms idle=1008.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:40.357 [debug] QUERY OK source="media_items" db=0.9ms queue=0.8ms idle=1010.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 11:51:40.536 [debug] QUERY OK source="media_items" db=175.3ms queue=0.1ms idle=1013.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "52f37676-60fd-4a06-af50-63cef8680243", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 11:51:40Z], ~U[2026-03-11 11:51:40Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 11:51:40.538 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=475.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:40.542 [debug] QUERY OK source="media_profiles" db=2.8ms queue=0.2ms idle=186.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] 11:51:40.544 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=188.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 [36581] 11:51:40.544 [debug] Current batch of media processed. Will check again in 1000ms 11:51:41.546 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 11:51:41.553 [debug] QUERY OK source="sources" db=2.3ms idle=1015.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:41.557 [debug] QUERY OK source="sources" db=0.9ms queue=2.0ms idle=1016.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:41.562 [debug] QUERY OK source="media_items" db=2.2ms queue=1.5ms idle=1016.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 11:51:41.640 [debug] QUERY OK source="media_items" db=61.6ms idle=1020.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "4141b0cb-1357-4a83-a58d-1365534240f9", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 11:51:41Z], ~U[2026-03-11 11:51:41Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 11:51:41.691 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=624.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:41.698 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.2ms idle=143.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] 11:51:41.700 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=141.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 [36582] 11:51:41.703 [debug] Current batch of media processed. Will check again in 1000ms 11:51:42.704 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 11:51:42.709 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1081.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:42.710 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1018.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:42.712 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1012.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 11:51:42.744 [debug] QUERY OK source="media_items" db=28.0ms queue=0.1ms idle=1014.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "5166cb42-fc3b-4d71-977e-7888cfd5ce6a", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 11:51:42Z], ~U[2026-03-11 11:51:42Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 11:51:42.746 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=676.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:42.749 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=39.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] 11:51:42.753 [debug] QUERY OK source="media_items" db=1.2ms queue=0.3ms idle=40.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 [36583] 11:51:42.754 [debug] Current batch of media processed. Will check again in 1000ms 11:51:43.757 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 11:51:43.759 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1014.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:43.761 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=1013.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:43.763 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=1011.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 11:51:43.817 [debug] QUERY OK source="media_items" db=51.2ms queue=0.1ms idle=1010.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "d326bd0b-557b-44eb-87d7-9c52d9b5bf74", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 11:51:43Z], ~U[2026-03-11 11:51:43Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 11:51:43.819 [debug] QUERY OK source="sources" db=1.1ms queue=0.2ms idle=746.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:43.821 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=60.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:51:43.824 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=61.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 [36439] 11:51:43.824 [debug] Current batch of media processed. Will check again in 1000ms 11:51:44.579 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/2e/d9/2ed9aed7bf178ce7c4eb2c848a8f8e3925bdf7d4cd2c5f742bcd9761ffaec0d8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 11:51:44.605 [debug] Gracefully stopping file follower 11:51:44.606 [debug] QUERY OK source="sources" db=0.5ms queue=0.3ms idle=789.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 11:51:44.607 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=787.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.608 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=785.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 11:51:44.628 [debug] QUERY OK source="media_items" db=18.6ms idle=785.2ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "918e2b9c-de51-4c26-9cdf-417ed61a38e3", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 11:51:44.629 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=554.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.630 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=23.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 11:51:44.684 [debug] QUERY OK source="media_items" db=52.0ms queue=0.3ms idle=24.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "b4042e90-ee93-4a47-9096-42ac39787cec", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 11:51:44.686 [debug] QUERY OK source="sources" db=0.9ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.688 [debug] QUERY OK source="media_items" db=1.1ms idle=58.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 11:51:44.738 [debug] QUERY OK source="media_items" db=48.7ms idle=59.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "8626a8bf-4eb1-455c-a6c1-df7d7bd2d0e6", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 11:51:44.739 [debug] QUERY OK source="sources" db=0.8ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.741 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=56.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 11:51:44.813 [debug] QUERY OK source="media_items" db=71.0ms queue=0.1ms idle=55.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "6984ff9d-16c2-4fd9-bf11-c54351424e2b", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 11:51:44.815 [debug] QUERY OK source="sources" db=0.6ms queue=0.6ms idle=126.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.817 [debug] QUERY OK source="media_items" db=1.1ms queue=0.2ms idle=78.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 11:51:44.894 [debug] QUERY OK source="media_items" db=74.1ms idle=79.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "7c8e507f-d8f7-4575-9ffc-01b90ccd541c", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 11:51:44.895 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=153.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.897 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=83.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 11:51:44.930 [debug] QUERY OK source="media_items" db=31.4ms idle=82.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "6248c294-16db-4a0e-97f8-8af4e7068561", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 11:51:44.933 [debug] QUERY OK source="sources" db=1.0ms queue=0.3ms idle=114.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.935 [debug] QUERY OK source="media_items" db=1.1ms idle=40.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 11:51:44.965 [debug] QUERY OK source="media_items" db=28.6ms queue=0.2ms idle=40.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "8b350528-f565-4d17-b4ab-03797331d16f", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 11:51:44.968 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=70.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.970 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=39.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 11:51:44.993 [debug] QUERY OK source="media_items" db=21.7ms idle=37.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "e6ff1c2f-b5cf-44cc-adfd-888d8e3a4d35", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 11:51:44.994 [debug] QUERY OK source="sources" db=0.8ms idle=58.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:44.996 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=30.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 11:51:45.052 [debug] QUERY OK source="media_items" db=55.0ms idle=28.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "03ec4d3d-43db-430a-8735-4fc8fdc3ccc3", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 11:51:44Z], ~U[2026-03-11 11:51:44Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 11:51:45.059 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=87.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:51:45.060 [debug] QUERY OK source="media_items" db=0.9ms idle=66.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 11:51:45.149 [debug] QUERY OK source="media_items" db=85.7ms queue=0.3ms idle=68.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "b136ef72-3f7c-4bc2-81c4-c0cda46107c4", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 11:51:45Z], ~U[2026-03-11 11:51:45Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 11:51:45.153 [debug] QUERY OK source="sources" db=2.5ms queue=0.1ms idle=98.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 11:51:45Z], ~U[2026-03-11 11:51:45Z], 1] 11:51:45.155 [debug] QUERY OK source="media_items" db=1.0ms idle=94.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 11:51:45.156 [debug] QUERY OK source="media_items" db=1.0ms idle=95.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 11:51:45.157 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=80.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 11:51:45.175 [debug] QUERY OK source="tasks" db=7.8ms idle=12.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3243, 1, ~U[2026-03-11 11:51:45Z], ~U[2026-03-11 11:51:45Z]] 11:51:45.216 [info] {"args":{"id":1},"id":3242,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":17146892,"event":"job:stop","queue_time":748287,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 11:51:47.203 [info] {"source":"oban","duration":2470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:50.417 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 11:52:00.314 [info] {"source":"oban","duration":919,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:52:17.206 [info] {"source":"oban","duration":2301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:47.209 [info] {"source":"oban","duration":2069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:50.426 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 11:53:00.315 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:53:17.212 [info] {"source":"oban","duration":2195,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:53:47.215 [info] {"source":"oban","duration":2129,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:00.317 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:54:17.218 [info] {"source":"oban","duration":1869,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:47.221 [info] {"source":"oban","duration":2221,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:00.320 [info] {"source":"oban","duration":817,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:55:17.224 [info] {"source":"oban","duration":2074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:47.226 [info] {"source":"oban","duration":1622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:00.321 [info] {"source":"oban","duration":393,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:56:17.230 [info] {"source":"oban","duration":2048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:47.232 [info] {"source":"oban","duration":1896,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:00.366 [info] {"source":"oban","duration":42632,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:57:17.235 [info] {"source":"oban","duration":1803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:47.239 [info] {"source":"oban","duration":2082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:00.367 [info] {"source":"oban","duration":799,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:58:17.242 [info] {"source":"oban","duration":1928,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:47.245 [info] {"source":"oban","duration":2413,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:00.370 [info] {"source":"oban","duration":662,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:59:17.247 [info] {"source":"oban","duration":1801,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:47.251 [info] {"source":"oban","duration":1911,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:00.371 [info] {"source":"oban","duration":554,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:00:17.253 [info] {"source":"oban","duration":1597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:47.257 [info] {"source":"oban","duration":2182,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:00.373 [info] {"source":"oban","duration":615,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:01:17.260 [info] {"source":"oban","duration":2074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:47.262 [info] {"source":"oban","duration":1438,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:50.489 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 12:02:00.375 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:02:17.264 [info] {"source":"oban","duration":1771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:02:47.268 [info] {"source":"oban","duration":2140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:00.377 [info] {"source":"oban","duration":444,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:03:17.272 [info] {"source":"oban","duration":2887,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:47.275 [info] {"source":"oban","duration":1785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:50.505 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 12:04:00.379 [info] {"source":"oban","duration":388,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:04:17.278 [info] {"source":"oban","duration":1812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:04:47.282 [info] {"source":"oban","duration":2201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:00.380 [info] {"source":"oban","duration":485,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:05:17.285 [info] {"source":"oban","duration":1827,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:47.288 [info] {"source":"oban","duration":1756,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:00.382 [info] {"source":"oban","duration":594,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:06:17.292 [info] {"source":"oban","duration":1920,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:47.319 [info] {"source":"oban","duration":26053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 12:07:00.384 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:07:17.350 [info] {"source":"oban","duration":30568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:07:47.354 [info] {"source":"oban","duration":2095,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:00.386 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:08:17.356 [info] {"source":"oban","duration":1536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:47.359 [info] {"source":"oban","duration":2254,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:00.388 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:09:17.362 [info] {"source":"oban","duration":1943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:47.364 [info] {"source":"oban","duration":1562,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:00.389 [info] {"source":"oban","duration":542,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:10:17.367 [info] {"source":"oban","duration":1730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:47.370 [info] {"source":"oban","duration":1930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:00.391 [info] {"source":"oban","duration":453,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:11:17.372 [info] {"source":"oban","duration":1809,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:47.375 [info] {"source":"oban","duration":1876,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:50.565 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 12:12:00.393 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:12:17.379 [info] {"source":"oban","duration":1782,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:12:47.381 [info] {"source":"oban","duration":1617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:00.395 [info] {"source":"oban","duration":434,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:13:17.384 [info] {"source":"oban","duration":1789,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:47.387 [info] {"source":"oban","duration":1470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:50.579 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 12:14:00.397 [info] {"source":"oban","duration":690,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:14:17.390 [info] {"source":"oban","duration":1826,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:14:47.393 [info] {"source":"oban","duration":2139,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:00.400 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:15:17.396 [info] {"source":"oban","duration":2044,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:47.399 [info] {"source":"oban","duration":1567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:00.401 [info] {"source":"oban","duration":404,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:16:17.403 [info] {"source":"oban","duration":2423,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:47.407 [info] {"source":"oban","duration":2199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:00.403 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:17:17.410 [info] {"source":"oban","duration":2094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:47.412 [info] {"source":"oban","duration":1690,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:00.405 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:18:17.416 [info] {"source":"oban","duration":2290,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:47.419 [info] {"source":"oban","duration":1564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:00.407 [info] {"source":"oban","duration":524,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:19:17.423 [info] {"source":"oban","duration":2032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:47.425 [info] {"source":"oban","duration":1762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:00.409 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:20:17.429 [info] {"source":"oban","duration":1992,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:47.432 [info] {"source":"oban","duration":2474,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:00.411 [info] {"source":"oban","duration":650,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:21:17.435 [info] {"source":"oban","duration":1619,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:45.979 [info] {"args":{"id":1},"id":3243,"meta":{},"system_time":1773231705979004827,"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"]} 12:21:45.982 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1353.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:45.984 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=1356.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:21:45.988 [debug] QUERY OK source="media_items" db=2.0ms idle=1043.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")))) [1] 12:21:46.007 [debug] QUERY OK source="media_items" db=18.7ms idle=16.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 12:21:46.010 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=30.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] 12:21:46.012 [debug] QUERY OK source="settings" db=0.7ms idle=29.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:21:46.047 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 12:21:46.048 [debug] Current batch of media processed. Will check again in 1000ms 12:21:46.049 [debug] QUERY OK source="settings" db=1.0ms idle=63.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:21:46.050 [debug] QUERY OK source="settings" db=0.8ms idle=60.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:21:46.051 [debug] QUERY OK source="settings" db=0.9ms idle=42.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:21:46.052 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ae/34/ae3450720a50f1155db32e838036852c5922f03d5ec7b8e00ee4723cc08d4a9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 12:21:47.049 [debug] Current batch of media processed. Will check again in 1000ms 12:21:47.441 [info] {"source":"oban","duration":4166,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:48.050 [debug] Current batch of media processed. Will check again in 1000ms 12:21:49.052 [debug] Current batch of media processed. Will check again in 1000ms 12:21:50.054 [debug] Current batch of media processed. Will check again in 1000ms 12:21:50.639 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 12:21:51.055 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 3492, "filename" => "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", "id" => "dZ1tTlcXUy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dZ1tTlcXUy4", "playlist_index" => 1, "timestamp" => 1728752779, "title" => "028 Al Qasas 59 77", "upload_date" => "20241012"} 12:21:51.057 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1429.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:51.058 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1430.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:51.060 [debug] QUERY OK source="media_items" db=1.2ms idle=1075.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 12:21:51.147 [debug] QUERY OK source="media_items" db=85.8ms idle=434.0ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "dfffc82a-6013-4593-93f7-f35c8ace3428", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 12:21:51Z], ~U[2026-03-11 12:21:51Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 12:21:51.149 [debug] QUERY OK source="sources" db=1.2ms idle=162.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:51.150 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=92.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] 12:21:51.153 [debug] QUERY OK source="media_items" db=0.8ms queue=0.5ms idle=92.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 [37332] 12:21:51.153 [debug] Current batch of media processed. Will check again in 1000ms 12:21:52.166 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1970, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", "id" => "tHL82zmafoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tHL82zmafoM", "playlist_index" => 2, "timestamp" => 1771714807, "title" => "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "upload_date" => "20260221"} 12:21:52.167 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1020.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:52.169 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=1019.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:52.171 [debug] QUERY OK source="media_items" db=1.0ms queue=0.6ms idle=1019.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 12:21:52.210 [debug] QUERY OK source="media_items" db=37.1ms decode=0.1ms queue=0.1ms idle=1019.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "ee89f833-88e5-4a15-93e1-2dd3a0d53aa6", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 12:21:52Z], ~U[2026-03-11 12:21:52Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 12:21:52.212 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=222.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:52.213 [debug] QUERY OK source="media_profiles" db=0.9ms idle=45.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] 12:21:52.215 [debug] QUERY OK source="media_items" db=0.8ms idle=44.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 [36910] 12:21:52.215 [debug] Current batch of media processed. Will check again in 1000ms 12:21:53.216 [debug] Current batch of media processed. Will check again in 1000ms 12:21:54.217 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 2142, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "9itQHfB7DOU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9itQHfB7DOU", "playlist_index" => 3, "timestamp" => 1771700408, "title" => "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260221"} 12:21:54.219 [debug] QUERY OK source="sources" db=0.7ms idle=590.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:54.220 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=591.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:54.221 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=592.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 12:21:54.226 [debug] QUERY OK source="media_items" db=3.8ms idle=594.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "e4170719-b1e4-4882-aaf2-582c0cd1cfa9", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 12:21:54Z], ~U[2026-03-11 12:21:54Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 12:21:54.248 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=253.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:54.250 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=30.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:21:54.251 [debug] QUERY OK source="media_items" db=0.6ms idle=30.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 [36578] 12:21:54.251 [debug] Current batch of media processed. Will check again in 1000ms 12:21:55.252 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1914, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", "id" => "776wd4rgME8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=776wd4rgME8", "playlist_index" => 4, "timestamp" => 1771615247, "title" => "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "upload_date" => "20260220"} 12:21:55.255 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=1027.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:55.259 [debug] QUERY OK source="sources" db=3.3ms queue=0.1ms idle=1007.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:55.263 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=1009.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 12:21:55.273 [debug] QUERY OK source="media_items" db=7.2ms idle=1013.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "450b175f-f4e1-4328-b927-a4a53f1fd5ad", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 12:21:55Z], ~U[2026-03-11 12:21:55Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 12:21:55.277 [debug] QUERY OK source="sources" db=2.8ms queue=0.2ms idle=278.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:55.281 [debug] QUERY OK source="media_profiles" db=3.2ms queue=0.1ms idle=22.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:21:55.286 [debug] QUERY OK source="media_items" db=2.2ms queue=0.3ms idle=24.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 [36579] 12:21:55.288 [debug] Current batch of media processed. Will check again in 1000ms 12:21:56.290 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "duration" => 1805, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", "id" => "pdsPOqKjcr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pdsPOqKjcr4", "playlist_index" => 5, "timestamp" => 1771536391, "title" => "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "upload_date" => "20260219"} 12:21:56.293 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=1019.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:56.296 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=1016.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:56.297 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1015.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 12:21:56.302 [debug] QUERY OK source="media_items" db=3.1ms idle=1012.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "54766be8-9853-419e-b871-359d757c4daa", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 12:21:56Z], ~U[2026-03-11 12:21:56Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 12:21:56.304 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=304.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:56.306 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=11.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:21:56.308 [debug] QUERY OK source="media_items" db=0.7ms idle=11.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36580] 12:21:56.308 [debug] Current batch of media processed. Will check again in 1000ms 12:21:57.310 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "duration" => 1903, "filename" => "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", "id" => "svv5O1pBDuI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=svv5O1pBDuI", "playlist_index" => 6, "timestamp" => 1771684351, "title" => "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "upload_date" => "20260221"} 12:21:57.312 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1008.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:57.313 [debug] QUERY OK source="sources" db=0.4ms queue=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:57.315 [debug] QUERY OK source="media_items" db=0.8ms queue=0.7ms idle=1007.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 12:21:57.322 [debug] QUERY OK source="media_items" db=4.5ms queue=0.1ms idle=1008.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "29023913-0f42-45b1-9dd1-e1b443e426cd", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 12:21:57Z], ~U[2026-03-11 12:21:57Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 12:21:57.344 [debug] QUERY OK source="sources" db=1.1ms queue=0.7ms idle=340.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:57.345 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=32.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] 12:21:57.347 [debug] QUERY OK source="media_items" db=1.1ms idle=33.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 [36581] 12:21:57.347 [debug] Current batch of media processed. Will check again in 1000ms 12:21:58.349 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "duration" => 995, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", "id" => "PBciEuxYu9Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PBciEuxYu9Y", "playlist_index" => 7, "timestamp" => 1771668007, "title" => "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "upload_date" => "20260221"} 12:21:58.371 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1049.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:58.372 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1027.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:58.374 [debug] QUERY OK source="media_items" db=0.8ms idle=1027.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 12:21:58.426 [debug] QUERY OK source="media_items" db=50.2ms queue=0.1ms idle=1027.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "3e48a104-3f72-4ef1-8aa4-74e0d6e927c2", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 12:21:58Z], ~U[2026-03-11 12:21:58Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 12:21:58.429 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=423.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:58.431 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=58.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] 12:21:58.432 [debug] QUERY OK source="media_items" db=0.9ms idle=58.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 [36582] 12:21:58.433 [debug] Current batch of media processed. Will check again in 1000ms 12:21:59.434 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "duration" => 1194, "filename" => "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", "id" => "TJek4wUSGEA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJek4wUSGEA", "playlist_index" => 8, "timestamp" => 1771597837, "title" => "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "upload_date" => "20260220"} 12:21:59.436 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1009.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:21:59.437 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1006.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:59.439 [debug] QUERY OK source="media_items" db=1.0ms queue=0.4ms idle=1006.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 12:21:59.667 [debug] QUERY OK source="media_items" db=227.0ms idle=1006.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "b5079215-d161-415e-b910-857768fd1d64", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 12:21:59Z], ~U[2026-03-11 12:21:59Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 12:21:59.668 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=658.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:21:59.669 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms idle=232.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] 12:21:59.671 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=232.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 [36583] 12:21:59.671 [debug] Current batch of media processed. Will check again in 1000ms 12:22:00.413 [info] {"source":"oban","duration":365,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:22:00.672 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "duration" => 1919, "filename" => "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", "id" => "06w596oNzAw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=06w596oNzAw", "playlist_index" => 9, "timestamp" => 1771628407, "title" => "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "upload_date" => "20260220"} 12:22:00.674 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1005.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:22:00.709 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=1039.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:00.711 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1038.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 12:22:00.762 [debug] QUERY OK source="media_items" db=46.2ms idle=700.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "579a490e-f569-4ed8-b668-c9f84e67e85b", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 12:22:00Z], ~U[2026-03-11 12:22:00Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 12:22:00.839 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=424.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:00.840 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=165.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] 12:22:00.842 [debug] QUERY OK source="media_items" db=1.1ms idle=131.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 [36439] 12:22:00.842 [debug] Current batch of media processed. Will check again in 1000ms 12:22:01.768 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLrRjLdo_f3RuXWrY_jpzwW7v8Afo2pQ3C --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/music/%(artist,creator,uploader,uploader_id)S/%(title)S.%(ext)S --extract-audio --format-sort +acodec:mp3 --audio-format mp3 --format bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ae/34/ae3450720a50f1155db32e838036852c5922f03d5ec7b8e00ee4723cc08d4a9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 12:22:01.803 [debug] Gracefully stopping file follower 12:22:01.804 [debug] QUERY OK source="sources" db=0.8ms idle=1044.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:22:01.821 [debug] QUERY OK source="sources" db=1.5ms queue=0.2ms idle=980.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:01.833 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=991.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-12 17:06:19Z], 1] 12:22:01.844 [debug] QUERY OK source="media_items" db=9.5ms idle=991.8ms INSERT INTO "media_items" AS m0 ("title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["028 Al Qasas 59 77", "0bf11ece-3a75-4f5e-a3f3-f48c66852e03", "dZ1tTlcXUy4", false, "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, 1, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, false, 1, [], 1, ~U[2024-10-12 17:06:19Z], ~U[2026-03-11 12:22:01Z], ~U[2026-03-11 12:22:01Z], "", "028 Al Qasas 59 77", "dZ1tTlcXUy4", "https://www.youtube.com/watch?v=dZ1tTlcXUy4", 3492, false, "/downloads/music/mustafa03011/028 Al Qasas 59 77.NA", false, 1, ~U[2024-10-12 17:06:19Z]] 12:22:01.846 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=827.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:01.848 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=42.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 23:00:07Z], 1] 12:22:01.909 [debug] QUERY OK source="media_items" db=59.7ms idle=27.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "a0112149-4586-4989-ad29-90fd62211533", "tHL82zmafoM", false, "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, 2, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, false, 1, [], 4, ~U[2026-02-21 23:00:07Z], ~U[2026-03-11 12:22:01Z], ~U[2026-03-11 12:22:01Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nThere is no escape from death, and no knowing when or where it will seize us or our loved ones.\n\nAhmad Hraichie (The Muslim Undertaker) joins our hosts to reflect on stories of people as death approached them, asking Allah for a good ending, and remembering Allah’s Names and Attributes when grieving. \n\nNames of Allah discussed: \nAl-Rahman, Al-Hayy\n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - Up close with death all the time\n3:25 - Being mindful of al-Rahman \n4:40 - When you sacrifice for Allah\n11:22 - Why we should remember death often\n15:12 - A convert learns of the questioning in the grave\n17:12 - A mother martyred while giving birth\n18:35 - 9 years of tahajjud after cancer\n19:25 - When the body rushes towards the grave\n23:12 - Living for Allah after the death of a loved one \n26:27 - Do you get turned off by death? \n27:38 - A man who lost his entire family \n\n#quran30for30 #muslimundertaker #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7", "tHL82zmafoM", "https://www.youtube.com/watch?v=tHL82zmafoM", 1970, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Final Moments of This Life | Ahmad Hraichie (The Muslim Undertaker) | Juz 4 Qur’an 30 for 30 S7.m4a", false, 1, ~U[2026-02-21 23:00:07Z]] 12:22:01.911 [debug] QUERY OK source="sources" db=1.3ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:01.914 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=69.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 19:00:08Z], 1] 12:22:02.068 [debug] QUERY OK source="media_items" db=25.7ms queue=0.2ms idle=193.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "ef82b18b-3453-4aec-8a20-41a49ef7ef87", "9itQHfB7DOU", false, "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, 3, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 19:00:08Z], ~U[2026-03-11 12:22:01Z], ~U[2026-03-11 12:22:01Z], "In this episode, we explore the powerful statement: ʿAllama al-Quran, He taught the Quran. \n\nWhy does the surah mention teaching the Quran before even mentioning the creation of the human being? Why is guidance placed before life itself? \n\nWe examine how this phrase responds to earlier nations who were destroyed after rejecting miracles and why the coming of the Quran represents an extraordinary and unprecedented rahmah. The Quran is both message and miracle combined and unlike previous nations, those who rejected it were not immediately annihilated, itself a sign of overwhelming divine care. \n\nThis episode also explores a profound shift in perspective: the Quran is not merely information, it is transformation. Teaching implies nurturing, repetition, patience and growth over time. It is not about credentials or prestige, but about entering a lifelong relationship of learning with the One who chose to be your teacher. \n\nIf Ar-Rahman is the lens, then everything in the Quran, including warning, accountability and even descriptions of punishment, must be understood through that lens of love and care. \n\nThis episode reshapes how we see revelation, purpose and our place as students of the Quran. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "9itQHfB7DOU", "https://www.youtube.com/watch?v=9itQHfB7DOU", 2142, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 3: Teaching as an Act of Mercy | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-21 19:00:08Z]] 12:22:02.070 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=160.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.073 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=160.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 19:20:47Z], 1] 12:22:02.101 [debug] QUERY OK source="media_items" db=23.6ms queue=0.2ms idle=161.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "b11e8a72-7def-4dd1-919e-47ef23d72aa2", "776wd4rgME8", false, "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, 4, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, false, 1, [], 4, ~U[2026-02-20 19:20:47Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "In this episode, we begin exploring the opening word of Surah Ar-Rahman and uncover why this single name carries extraordinary depth. \n\nWe look at the subtle continuity between Surah An-Najm, Surah Al-Qamar and Surah Ar-Rahman and how themes of the moon, the star, the tree and sajdah flow seamlessly into the opening of this surah. \n\nThen we dive into the linguistic depth of the name Ar-Rahman. What does it really mean? Why is “merciful” not enough to capture it? What is the difference between Ar-Rahman and Ar-Rahim? And why does this name carry both overwhelming love and a powerful warning? \n\nThrough the imagery of the womb, overflowing care and the structure of the Arabic language itself, we begin to understand that this word is not just a translation, it is a universe of meaning. \n\nThis episode sets the emotional and intellectual foundation for everything that follows in the surah.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n \n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\n \nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026", "776wd4rgME8", "https://www.youtube.com/watch?v=776wd4rgME8", 1914, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 2: Mercy Before Everything | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan 2026.m4a", false, 1, ~U[2026-02-20 19:20:47Z]] 12:22:02.103 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.105 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=38.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-19 21:26:31Z], 1] 12:22:02.150 [debug] QUERY OK source="media_items" db=20.7ms idle=58.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "34e4acc3-d29c-4121-9fb9-ff082d8ac6ea", "pdsPOqKjcr4", false, "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, 5, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, false, 1, [], 2, ~U[2026-02-19 21:26:31Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "In this episode, we begin a deep journey into Surah Ar-Rahman by stepping back and looking at the bigger picture. Before diving into individual ayat, we explore the overall structure of the surah and how its themes unfold with remarkable precision. \n\nFrom the greatness of the Quran, to the cosmic order of the skies and the earth, to the temporary nature of this world, the horrors of Judgment Day and the layered descriptions of Jannah, this episode provides a bird’s-eye view of how every section connects. \n\nWe also uncover how Surah Ar-Rahman fits into a larger group of Makkan surahs, forming a powerful, cohesive unit within the Quran. The connections between Surah 50 through 56 reveal a stunning design that transforms the way we see the Quran, not as disconnected chapters, but as a carefully bound whole. \n\nThis episode sets the foundation for everything that follows. \n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [@Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n-- \n\nReady to go deeper? Download the companion workbook and explore the school pack at https://bayyinah.com/ramadan2026. \n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2. \n\nJoin our daily live discussions on Bayyinah TV throughout Ramadan here: https://byna.tv/21. Come reflect in real time, ask questions and experience Surah Ar-Rahman with a global community each day. \n\nDuring Ramadan, 15% of your membership directly sponsors tablets for orphans preloaded with our Quran apps, so your learning becomes ongoing sadaqah. \n\nAlready following along? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1", "Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan", "pdsPOqKjcr4", "https://www.youtube.com/watch?v=pdsPOqKjcr4", 1805, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/Ep 1: A Surah with a Deliberate Design | Surah Ar-Rahman: A Deeper Look | Nouman Ali Khan | Ramadan.m4a", false, 1, ~U[2026-02-19 21:26:31Z]] 12:22:02.152 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=77.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.155 [debug] QUERY OK source="media_items" db=1.0ms queue=1.2ms idle=52.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 14:32:31Z], 1] 12:22:02.187 [debug] QUERY OK source="media_items" db=29.7ms idle=52.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "233362f6-a3ab-4534-b502-95c6be31faa5", "svv5O1pBDuI", false, "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, 6, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, false, 1, [], 4, ~U[2026-02-21 14:32:31Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "In this episode, Ustadh Nouman Ali Khan, along with Zaid and Bushra, explore the opening of Surah Ar-Rahman by reflecting on why the surah begins with Ar-Rahman as a powerful standalone declaration, and why the first action attributed to the Most Merciful is that He “taught the Quran.”\nKey points of this episode:\nWhat is the linguistic and semantic depth of the word Ar-Rahman?\n\n\nWhy does Allah say “He taught the Quran” instead of “He sent down the Quran”?\n\n\nWhat is the scope of the Quran’s instruction is it limited to Muslims, or is it a universal invitation to all of humanity?\n\n\nWhat rhetorical wisdom lies in making Ar-Rahman a standalone verse?\n\n\nHow does pairing divine mercy with divine instruction redefine our perception of revelation?\n\n\nThis episode clarifies that the Quran is not presented as a distant text simply delivered from above, but as a carefully and compassionately taught guidance a manifestation of Allah’s mercy in action. The act of teaching itself becomes a sign of divine care, nurturing humanity step by step.\n\nSurah Ar-Rahman recitation recorded and provided by Qari Ibraheem Bakeer - [ @Maqamat_with_Bakeer ]\nhttps://youtube.com/@Maqamat_with_Bakeer?si=-r1KAAhlbA0xsgVD\n\n—\n\nWant to go deeper with our Surah Ar-Rahman Urdu series? Explore more ways to continue your learning at https://bayyinah.com/ramadan2026.\n\nMake the most of your Quran study this Ramadan with our new Revealed app: A mushaf experience for reading, understanding and reflecting on the Quran: https://byna.tv/revealed2.\n\nJoin the conversation on Bayyinah TV here: https://byna.tv/21. Connect with other Urdu-speaking students inside our community forum, share reflections and benefit from meaningful discussion as you journey through the surah together.\n\nDuring Ramadan, 15% of your membership goes toward sponsoring tablets for orphans preloaded with our Quran apps, turning your learning into lasting impact.\n\nAlready benefiting? Gift someone a Bayyinah TV membership and let them experience Surah Ar-Rahman with you: https://byna.tv/gift1.", "[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman", "svv5O1pBDuI", "https://www.youtube.com/watch?v=svv5O1pBDuI", 1903, false, "/downloads/music/Nouman Ali Khan - Official - Bayyinah/[Urdu] Ep 3: The First Gift of Ar-Rahman | Allamal Quran: A Study of Surah Ar-Rahman.m4a", false, 1, ~U[2026-02-21 14:32:31Z]] 12:22:02.189 [debug] QUERY OK source="sources" db=0.6ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.192 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=41.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-21 10:00:07Z], 1] 12:22:02.219 [debug] QUERY OK source="media_items" db=24.6ms queue=0.2ms idle=41.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "124c9b4b-9b68-4334-a1d3-7c6083be2299", "PBciEuxYu9Y", false, "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, 7, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, false, 1, [], 4, ~U[2026-02-21 10:00:07Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "Deepen your reflection on The Name I Need series by downloading the free Rewind & Reflect guides for daily conversation prompts, activities, and DIY Du’a Builder! https://yqn.io/guides\n\nWhy do even the closest people in your life eventually leave while one Companion never does?\n\nFriends change. Circumstances end. Relationships fade. Even the most loving bonds in this world are temporary. Your heart was created to seek a presence that never disappears, a support that never weakens, and a friendship that never betrays. \n\nIn this episode, Dr. Omar Suleiman reflects on the names Al-Waliyy, Al-Barr, Ar-Rafeeq, and how Allah is the Protective Friend who guards you, the Stable Source of all good, and the Gentle Companion who walks with you through every stage of life and beyond so you are never alone.\n\nNote: Only vocals were used in the making of the soundtrack.\n\n00:00 Opening Scene Adam and His Mother \n02:46 Dr. Omar Suleiman on Loneliness and Temporary Companionship in Islam \n03:17 Love Whom You Will You Will Be Separated Hadith Explained \n03:31 The Travel Du’a and Allah as the True Companion \n05:25 Al Barr Meaning The Source of All Good in Islam \n07:10 The Trustworthy Handhold That Never Breaks Quran Explained \n08:49 Al Wali Meaning Allah as the Protecting and Guiding Friend \n09:52 Prophet Yusuf Story and Allah as Al Wali \n11:40 Ar-Rafiq Meaning Allah’s Gentleness Explained \n13:43 Ar-Rafiq Al A‘la The Highest Companion \n14:37 The Friends of Allah Will Not Fear on the Day of Judgment \n15:30 Closing Du’a Calling on Al Wali Al Barr and Ar Rafiq \n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on UpScrolled, X, Instagram, TikTok and Facebook @yaqeeninstitute!\n\n#ramadanseries #yaqeeninstitute #ramadan2026 #omarsuleiman #allahsnames #99namesofallah #companionship #awliyah \n\nRamadan 2026 / Ramadan time", "The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026", "PBciEuxYu9Y", "https://www.youtube.com/watch?v=PBciEuxYu9Y", 995, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/The Friend Who Never Leaves | Allah's Names Ep. 4 | Dr. Omar Suleiman | Ramadan Series 2026.m4a", false, 1, ~U[2026-02-21 10:00:07Z]] 12:22:02.220 [debug] QUERY OK source="sources" db=0.7ms queue=0.2ms idle=64.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.222 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=35.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 14:30:37Z], 1] 12:22:02.239 [debug] QUERY OK source="media_items" db=15.6ms idle=33.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "8a7dfc2e-faca-4e19-a419-c904fe82a1ee", "TJek4wUSGEA", false, "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, 8, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, false, 1, [], 4, ~U[2026-02-20 14:30:37Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "#raufklasra #imrankhan #nawazsharif #pti #pmln #pakistan #army #asimmunir #army #armychief #fieldmarshal #trump #usa #china #india #modi #peaceboard #pmo #modiji #maryamnawaz #islamabad #jail", "Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview", "TJek4wUSGEA", "https://www.youtube.com/watch?v=TJek4wUSGEA", 1194, false, "/downloads/music/Rauf Klasra/Top Anchor Mansoor Ali Khan Says PTI Approached Him For Release Of Imran Khan || Explosive Interview.m4a", false, 1, ~U[2026-02-20 14:30:37Z]] 12:22:02.241 [debug] QUERY OK source="sources" db=0.6ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.243 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=23.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 23:00:07Z], 1] 12:22:02.267 [debug] QUERY OK source="media_items" db=22.9ms idle=23.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "f2daf123-4c57-4416-9295-6e5d866e9f94", "06w596oNzAw", false, "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, 9, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, false, 1, [], 4, ~U[2026-02-20 23:00:07Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "As we enter this blessed month of Ramadan, support the work of Yaqeen by setting up your automated donation today: https://yqn.io/rpm4\n\nA true test of your commitment to Allah? You believe in accountability to Him, and you give for His sake from the best of what you have. \n\nDr. Tahir Wyatt joins Dr. Omar Suleiman and Sh. Abdullah Oduro to dive into the gems of Ayat al-Kursi, why some people believe in a Creator but not an afterlife, and why we should become more generous in Ramadan.\n\nNames of Allah discussed: Al-Rahman, Al-Wahhab, Al-Ghani, Al-Hameed\n\nWatch these videos from our documentary project on the history of Muslims in Philadelphia: \n— “Was This The First Muslim Town In America?”: http://yqn.io/f4v5\n— “I’ve Been In Hijab Since I Was 4 Years Old | Sr. Aliya Khabir”: http://yqn.io/vnxh\n— “The First Muslim Cowboys? | Imam Khalil Salaam”: http://yqn.io/xuwd \n\nDownload our new e-book, “Changed by the Qur'an” by Sh. Mohammad Elshinawy, to unlock a deeper connection with the Qur'an this Ramadan: http://yqn.io/hsdu\n\n0:00 - The history of Muslims in Philadelphia \n7:56 - Favorite Name of Allah at the moment \n9:40 - Allah’s self-description in Ayat al-Kursi \n12:58 - How do you know that you’re seeking guidance \n15:21 - A way to use the Names of Allah in your prayer\n17:53 - How Allah addresses all of humanity \n21:27 - What it really means to be generous in Ramadan \n30:24 - Conclusion\n\n#quran30for30 #ayatulkursi #omarsuleiman #ramadan #ramadanseries\n\nClick SUBSCRIBE and hit the 🔔 icon to receive the latest updates from Yaqeen!\n\nVisit http://www.yaqeeninstitute.org for full access to all research publications, infographics, and videos. Join the conversation on Twitter, Facebook, and Instagram @yaqeeninstitute!", "How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series", "06w596oNzAw", "https://www.youtube.com/watch?v=06w596oNzAw", 1919, false, "/downloads/music/Yaqeen Institute, Omar Suleiman Personal/How The Qur’an Makes You Rich | Dr. Tahir Wyatt | Juz 3 Qur’an 30 for 30 S7 | Ramadan Series.m4a", false, 1, ~U[2026-02-20 23:00:07Z]] 12:22:02.269 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=45.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:22:02.271 [debug] QUERY OK source="media_items" db=1.3ms idle=31.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 12:05:23Z], 1] 12:22:02.324 [debug] QUERY OK source="media_items" db=10.8ms idle=30.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","prevent_download","original_url","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "original_url" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "305ec675-f5d4-4233-9c0c-a3223b1615c2", "VWScrqXj3bw", false, "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, 10, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, false, 1, [], 4, ~U[2026-02-20 12:05:23Z], ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], "Gen. Naravane is Wrong on India-China Relations\n\n#pravinsawhney \n#forcemagazine\n\nwww.forceindia.net", "Gen. Naravane is Wrong on India-China Relations", "VWScrqXj3bw", "https://www.youtube.com/watch?v=VWScrqXj3bw", 1161, false, "/downloads/music/Force Magazine/Gen. Naravane is Wrong on India-China Relations.m4a", false, 1, ~U[2026-02-20 12:05:23Z]] 12:22:02.327 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=82.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z], 1] 12:22:02.331 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=62.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 12:22:02.366 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=95.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")))) [1] 12:22:02.367 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=95.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 12:22:02.394 [debug] QUERY OK source="tasks" db=3.3ms queue=0.1ms idle=59.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3244, 1, ~U[2026-03-11 12:22:02Z], ~U[2026-03-11 12:22:02Z]] 12:22:02.395 [info] {"args":{"id":1},"id":3243,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":16415478,"event":"job:stop","queue_time":796002,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 12:22:15.394 [info] GET /media_profiles/1 12:22:15.554 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:22:15.728 [debug] QUERY OK source="media_profiles" db=0.4ms queue=2.3ms idle=2098.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:22:15.781 [debug] QUERY OK source="sources" db=19.3ms queue=0.4ms idle=560.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 12:22:16.096 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=369.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:22:16.100 [debug] QUERY OK source="settings" db=3.5ms idle=370.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:22:16.303 [debug] QUERY OK source="settings" db=1.1ms queue=0.6ms idle=575.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:22:16.907 [info] Sent 200 in 1517ms 12:22:17.444 [info] {"source":"oban","duration":1781,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:47.448 [info] {"source":"oban","duration":2167,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:50.648 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 12:23:00.415 [info] {"source":"oban","duration":1331,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:23:17.451 [info] {"source":"oban","duration":2165,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:23:42.196 [info] GET /media_profiles/new 12:23:42.197 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 12:23:42.199 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms idle=1351.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:23:42.278 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=1431.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:23:42.280 [debug] QUERY OK source="settings" db=0.5ms queue=0.3ms idle=750.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:23:42.282 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=435.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:23:42.331 [debug] QUERY OK source="settings" db=1.1ms queue=0.4ms idle=483.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:23:43.114 [info] Sent 200 in 917ms 12:23:47.454 [info] {"source":"oban","duration":2466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:00.417 [info] {"source":"oban","duration":399,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:24:13.673 [info] GET /media_profiles/1/edit 12:24:13.684 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:24:13.694 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.3ms idle=1846.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 WHERE (m0."id" = ?) [1] 12:24:13.733 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=1119.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:24:13.733 [debug] QUERY OK source="settings" db=0.4ms idle=887.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:24:13.735 [debug] QUERY OK source="settings" db=0.4ms idle=888.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:24:13.857 [info] Sent 200 in 184ms 12:24:17.458 [info] {"source":"oban","duration":2570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:47.460 [info] {"source":"oban","duration":1932,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:00.418 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:25:11.557 [info] GET /sources/1/media/36439/edit 12:25:11.557 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36439", "source_id" => "1"} Pipelines: [:browser] 12:25:11.575 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=1726.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" = ?) [36439] 12:25:11.576 [info] GET /sources/1/media/4590 12:25:11.576 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "4590", "source_id" => "1"} Pipelines: [:browser] 12:25:11.578 [debug] QUERY OK source="media_items" db=1.6ms idle=798.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" = ?) [4590] 12:25:11.642 [debug] QUERY OK source="sources" db=1.1ms idle=794.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:25:11.662 [debug] QUERY OK source="settings" db=0.5ms queue=0.3ms idle=815.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:11.664 [debug] QUERY OK source="settings" db=0.8ms idle=87.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:11.666 [debug] QUERY OK source="settings" db=0.5ms idle=86.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:11.769 [debug] QUERY OK source="tasks" db=128.1ms queue=0.2ms idle=794.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [4590] 12:25:11.788 [info] Sent 200 in 231ms 12:25:11.905 [debug] QUERY OK source="oban_jobs" db=133.8ms queue=0.1ms idle=129.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [1783, 1784, 1790, 1791, 1797, 1798, 1848, 1849, 1855, 1856, 1906, 1907, 1913, 1914, 1964, 1965, 1971, 1972, 1978, 1979, 2029, 2030, 2036, 2037] 12:25:12.286 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=621.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:12.287 [debug] QUERY OK source="settings" db=0.6ms idle=620.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:12.289 [debug] QUERY OK source="settings" db=0.4ms idle=520.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:12.297 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=440.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] 12:25:12.441 [info] Sent 200 in 864ms 12:25:12.964 [info] GET /sources/1/media/36910/edit 12:25:12.964 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36910", "source_id" => "1"} Pipelines: [:browser] 12:25:13.086 [debug] QUERY OK source="media_items" db=0.4ms idle=799.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" = ?) [36910] 12:25:13.088 [debug] QUERY OK source="settings" db=0.6ms idle=800.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:13.089 [debug] QUERY OK source="settings" db=1.0ms idle=798.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:13.090 [debug] QUERY OK source="settings" db=0.7ms idle=792.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:25:13.132 [info] Sent 200 in 167ms 12:25:17.463 [info] {"source":"oban","duration":1566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:47.466 [info] {"source":"oban","duration":1944,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:00.371 [info] GET /sources/1/media/36583/edit 12:26:00.371 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36583", "source_id" => "1"} Pipelines: [:browser] 12:26:00.372 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1517.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" = ?) [36583] 12:26:00.374 [debug] QUERY OK source="settings" db=0.8ms queue=0.7ms idle=1519.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.375 [debug] QUERY OK source="settings" db=0.6ms idle=1520.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.378 [debug] QUERY OK source="settings" db=1.0ms queue=0.3ms idle=1394.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.380 [info] Sent 200 in 9ms 12:26:00.391 [info] GET /sources/1/media/10402/edit 12:26:00.391 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "10402", "source_id" => "1"} Pipelines: [:browser] 12:26:00.393 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=406.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" = ?) [10402] 12:26:00.397 [debug] QUERY OK source="settings" db=1.8ms queue=1.7ms idle=21.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.400 [debug] QUERY OK source="settings" db=2.1ms queue=0.1ms idle=23.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.404 [debug] QUERY OK source="settings" db=2.3ms idle=26.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:00.408 [info] Sent 200 in 17ms 12:26:00.420 [info] {"source":"oban","duration":1145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:26:02.395 [info] GET /sources/1/media/4590/edit 12:26:02.396 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "4590", "source_id" => "1"} Pipelines: [:browser] 12:26:02.398 [debug] QUERY OK source="media_items" db=0.4ms idle=543.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" = ?) [4590] 12:26:02.400 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=545.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:02.401 [debug] QUERY OK source="settings" db=0.4ms queue=0.3ms idle=546.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:02.403 [debug] QUERY OK source="settings" db=1.3ms idle=547.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:02.414 [info] Sent 200 in 18ms 12:26:12.201 [info] GET /sources/1/media/36582/edit 12:26:12.201 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36582", "source_id" => "1"} Pipelines: [:browser] 12:26:12.202 [debug] QUERY OK source="media_items" db=0.8ms idle=347.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" = ?) [36582] 12:26:12.204 [debug] QUERY OK source="settings" db=0.3ms idle=349.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.205 [debug] QUERY OK source="settings" db=0.6ms idle=350.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.208 [info] GET /sources/1/media/10402 12:26:12.208 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "10402", "source_id" => "1"} Pipelines: [:browser] 12:26:12.209 [debug] QUERY OK source="settings" db=2.7ms idle=352.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.211 [debug] QUERY OK source="media_items" db=0.7ms idle=191.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" = ?) [10402] 12:26:12.213 [debug] QUERY OK source="tasks" db=0.8ms idle=9.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [10402] 12:26:12.213 [debug] QUERY OK source="sources" db=1.0ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:26:12.239 [info] Sent 200 in 38ms 12:26:12.312 [debug] QUERY OK source="oban_jobs" db=96.5ms idle=10.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [1781, 1786, 1788, 1793, 1795, 1800, 1846, 1851, 1853, 1858, 1904, 1909, 1911, 1916, 1962, 1967, 1969, 1974, 1976, 1981, 2027, 2032, 2034, 2039] 12:26:12.382 [debug] QUERY OK source="settings" db=0.4ms 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 [] 12:26:12.383 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=171.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.385 [debug] QUERY OK source="settings" db=1.1ms idle=171.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.387 [debug] QUERY OK source="media_profiles" db=0.4ms idle=173.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] 12:26:12.432 [info] Sent 200 in 223ms 12:26:12.709 [info] GET /sources/1/media/36581/edit 12:26:12.709 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36581", "source_id" => "1"} Pipelines: [:browser] 12:26:12.710 [debug] QUERY OK source="media_items" db=0.5ms idle=397.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" = ?) [36581] 12:26:12.712 [debug] QUERY OK source="settings" db=0.6ms idle=328.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.712 [debug] QUERY OK source="settings" db=0.1ms queue=0.4ms idle=328.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.714 [debug] QUERY OK source="settings" db=0.2ms idle=327.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:12.717 [info] Sent 200 in 8ms 12:26:17.469 [info] {"source":"oban","duration":2009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:41.614 [info] GET /sources/1/media/36333 12:26:41.614 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36333", "source_id" => "1"} Pipelines: [:browser] 12:26:41.615 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1760.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" = ?) [36333] 12:26:41.617 [debug] QUERY OK source="sources" db=0.7ms idle=1762.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:26:41.637 [debug] QUERY OK source="tasks" db=20.1ms idle=1762.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [36333] 12:26:41.664 [debug] QUERY OK source="oban_jobs" db=26.3ms idle=1530.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" = ?) [2302] 12:26:41.665 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=554.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.666 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=50.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.668 [debug] QUERY OK source="settings" db=0.5ms idle=50.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.670 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=32.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] 12:26:41.701 [info] GET /sources/1/media/36333/edit 12:26:41.702 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36333", "source_id" => "1"} Pipelines: [:browser] 12:26:41.703 [debug] QUERY OK source="media_items" db=0.7ms idle=38.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" = ?) [36333] 12:26:41.704 [debug] QUERY OK source="settings" db=0.3ms idle=38.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.706 [debug] QUERY OK source="settings" db=0.7ms idle=38.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.708 [debug] QUERY OK source="settings" db=0.6ms idle=39.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:26:41.710 [info] Sent 200 in 8ms 12:26:41.757 [info] Sent 200 in 143ms 12:26:47.472 [info] {"source":"oban","duration":2112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:00.421 [info] {"source":"oban","duration":819,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:27:17.475 [info] {"source":"oban","duration":2204,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:23.953 [info] GET /sources/1/media/36580/edit 12:27:23.953 [info] GET /sources/1/media/36580 12:27:23.954 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36580", "source_id" => "1"} Pipelines: [:browser] 12:27:23.954 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36580", "source_id" => "1"} Pipelines: [:browser] 12:27:23.958 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=1100.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" = ?) [36580] 12:27:23.959 [debug] QUERY OK source="media_items" db=4.3ms queue=0.1ms idle=1100.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" = ?) [36580] 12:27:23.962 [debug] QUERY OK source="settings" db=2.7ms queue=0.3ms idle=1104.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:23.963 [debug] QUERY OK source="settings" db=0.9ms queue=0.2ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:23.964 [debug] QUERY OK source="sources" db=2.4ms idle=741.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:27:23.965 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:23.969 [info] Sent 200 in 15ms 12:27:23.985 [debug] QUERY OK source="tasks" db=23.1ms idle=1108.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" [36580] 12:27:24.020 [debug] QUERY OK source="oban_jobs" db=33.3ms queue=0.1ms idle=24.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" = ?) [2372] 12:27:24.021 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=57.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:24.025 [debug] QUERY OK source="settings" db=1.8ms queue=0.7ms idle=57.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:24.027 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=60.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:24.030 [debug] QUERY OK source="media_profiles" db=0.7ms idle=44.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] 12:27:24.102 [info] Sent 200 in 148ms 12:27:33.265 [info] GET /sources/1/media/10379 12:27:33.265 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "10379", "source_id" => "1"} Pipelines: [:browser] 12:27:33.267 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1411.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" = ?) [10379] 12:27:33.270 [debug] QUERY OK source="tasks" db=1.9ms idle=1414.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" [10379] 12:27:33.271 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1415.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:27:33.284 [debug] QUERY OK source="oban_jobs" db=0.9ms queue=0.1ms idle=1037.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [1782, 1785, 1789, 1792, 1796, 1799, 1847, 1850, 1854, 1857, 1905, 1908, 1912, 1915, 1963, 1966, 1970, 1973, 1977, 1980, 2028, 2031, 2035, 2038] 12:27:33.286 [debug] QUERY OK source="settings" db=0.6ms idle=36.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.287 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=19.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.289 [debug] QUERY OK source="settings" db=0.5ms idle=18.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.291 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=19.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:27:33.312 [info] Sent 200 in 47ms 12:27:33.355 [info] GET /sources/1/media/10379/edit 12:27:33.356 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "10379", "source_id" => "1"} Pipelines: [:browser] 12:27:33.358 [debug] QUERY OK source="media_items" db=1.1ms idle=72.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" = ?) [10379] 12:27:33.359 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms idle=72.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.360 [debug] QUERY OK source="settings" db=0.3ms idle=72.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.362 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=72.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:33.364 [info] Sent 200 in 8ms 12:27:47.477 [info] {"source":"oban","duration":1834,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:49.000 [info] GET /sources/1/media/36439 12:27:49.000 [info] GET /sources/1/media/36578/edit 12:27:49.000 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36439", "source_id" => "1"} Pipelines: [:browser] 12:27:49.000 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36578", "source_id" => "1"} Pipelines: [:browser] 12:27:49.002 [debug] QUERY OK source="media_items" db=1.2ms idle=62.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36578] 12:27:49.003 [debug] QUERY OK source="media_items" db=2.5ms idle=714.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" = ?) [36439] 12:27:49.006 [debug] QUERY OK source="sources" db=1.5ms idle=66.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:27:49.006 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=67.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:49.006 [debug] QUERY OK source="tasks" db=2.3ms idle=66.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" [36439] 12:27:49.009 [debug] QUERY OK source="settings" db=1.0ms queue=1.4ms 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 [] 12:27:49.011 [debug] QUERY OK source="settings" db=0.8ms 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 [] 12:27:49.013 [info] Sent 200 in 12ms 12:27:49.034 [debug] QUERY OK source="oban_jobs" db=24.9ms idle=5.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [2323] 12:27:49.036 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms idle=28.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:49.038 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms idle=30.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:49.040 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=30.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:27:49.044 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=32.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] 12:27:49.119 [info] Sent 200 in 119ms 12:28:00.423 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:28:17.497 [info] {"source":"oban","duration":17954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:20.373 [info] GET /sources/1/media/36583/force_download 12:28:20.407 [info] GET /sources/1/media/36581/force_download 12:28:20.707 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1747.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:20.708 [debug] QUERY OK source="settings" db=22.6ms queue=0.1ms idle=1747.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:20.710 [debug] QUERY OK source="settings" db=1.9ms idle=1346.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:20.710 [debug] QUERY OK source="settings" db=1.2ms idle=771.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:20.752 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:28:20.752 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:28:20.819 [error] #PID<0.142728.0> running PinchflatWeb.Endpoint (connection #PID<0.142727.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /sources/1/media/36581/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36581/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142727.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36581/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37248}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142728.0>, params: %{}, path_info: ["sources", "1", "media", "36581", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.101"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/media/36581/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJvJM0kcW70R8GEAB3Ky"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142727.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36581/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37248}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36581/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142727.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36581/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37248}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142728.0>, params: %{}, path_info: ["sources", "1", "media", "36581", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, (truncated) 12:28:20.819 [error] #PID<0.142726.0> running PinchflatWeb.Endpoint (connection #PID<0.142725.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /sources/1/media/36583/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36583/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36583/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37256}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142726.0>, params: %{}, path_info: ["sources", "1", "media", "36583", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.101"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/media/36583/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJvJM0cXuxsc5tUAB76B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36583/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37256}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36583/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36583/force_download", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 37256}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142726.0>, params: %{}, path_info: ["sources", "1", "media", "36583", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, (truncated) 12:28:47.525 [info] {"source":"oban","duration":27368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:56.191 [info] GET /media/57dab131-0ed0-4aef-b086-213a78c8ca25/stream 12:28:56.192 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "57dab131-0ed0-4aef-b086-213a78c8ca25"} Pipelines: [:maybe_basic_auth] 12:28:56.294 [info] GET /media/a3b41c29-4d7d-4588-9120-3dfc3b0ae372/stream 12:28:56.295 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a3b41c29-4d7d-4588-9120-3dfc3b0ae372"} Pipelines: [:maybe_basic_auth] 12:28:56.318 [debug] QUERY OK source="media_items" db=21.1ms queue=0.1ms idle=1984.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["a3b41c29-4d7d-4588-9120-3dfc3b0ae372"] 12:28:56.318 [debug] QUERY OK source="media_items" db=21.1ms queue=0.1ms idle=1984.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["57dab131-0ed0-4aef-b086-213a78c8ca25"] 12:28:56.322 [debug] Invalid range request for media item: 57dab131-0ed0-4aef-b086-213a78c8ca25 - serving full file 12:28:56.322 [info] Sent 200 in 130ms 12:28:56.322 [debug] Invalid range request for media item: a3b41c29-4d7d-4588-9120-3dfc3b0ae372 - serving full file 12:28:56.323 [info] Sent 200 in 28ms 12:29:00.425 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:29:06.509 [info] GET /sources/1/media/36581 12:29:06.509 [info] GET /sources/1/media/36583 12:29:06.510 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36581", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 12:29:06.511 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36583", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 12:29:06.511 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=901.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" = ?) [36581] 12:29:06.513 [debug] QUERY OK source="media_items" db=1.9ms idle=199.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" = ?) [36583] 12:29:06.516 [debug] QUERY OK source="sources" db=4.0ms idle=199.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:06.517 [debug] QUERY OK source="tasks" db=5.2ms idle=199.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" [36581] 12:29:06.519 [debug] QUERY OK source="tasks" db=2.8ms queue=0.1ms idle=203.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" [36583] 12:29:06.521 [debug] QUERY OK source="sources" db=3.4ms queue=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" = ?) [1] 12:29:06.522 [debug] QUERY OK source="oban_jobs" db=4.4ms idle=4.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" = ?) [2373] 12:29:06.525 [debug] QUERY OK source="settings" db=1.4ms queue=0.1ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:06.525 [debug] QUERY OK source="oban_jobs" db=1.8ms queue=1.2ms idle=6.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" = ?) [2375] 12:29:06.527 [debug] QUERY OK source="settings" db=1.0ms queue=0.2ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:06.528 [debug] QUERY OK source="settings" db=1.8ms queue=0.1ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:06.531 [debug] QUERY OK source="settings" db=2.3ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:06.531 [debug] QUERY OK source="settings" db=2.9ms 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 [] 12:29:06.535 [debug] QUERY OK source="settings" db=0.9ms 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 [] 12:29:06.536 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=8.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:06.540 [debug] QUERY OK source="media_profiles" db=3.3ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:06.568 [info] Sent 200 in 58ms 12:29:06.631 [info] Sent 200 in 121ms 12:29:17.527 [info] {"source":"oban","duration":1814,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:22.962 [info] GET /sources/new 12:29:22.962 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 12:29:23.055 [debug] QUERY OK source="media_profiles" db=31.4ms queue=0.6ms idle=1350.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_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" [] 12:29:23.056 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=743.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.069 [info] GET /sources/1/edit 12:29:23.070 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:29:23.071 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=758.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:23.073 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=759.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" [] 12:29:23.080 [debug] QUERY OK source="settings" db=2.5ms queue=0.4ms idle=401.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.081 [debug] QUERY OK source="settings" db=3.1ms queue=0.2ms idle=22.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.082 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=9.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.083 [debug] QUERY OK source="settings" db=1.8ms queue=0.3ms idle=24.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.084 [debug] QUERY OK source="settings" db=0.5ms queue=1.0ms idle=10.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.085 [debug] QUERY OK source="settings" db=1.1ms queue=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.092 [debug] QUERY OK source="settings" db=0.9ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:23.795 [info] Sent 200 in 725ms 12:29:23.849 [info] Sent 200 in 886ms 12:29:43.568 [info] GET /sources/1/force_redownload 12:29:43.568 [info] GET /sources/1/force_index 12:29:43.571 [debug] QUERY OK source="settings" db=2.1ms idle=772.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:43.572 [debug] QUERY OK source="settings" db=2.8ms idle=772.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:43.575 [debug] QUERY OK source="settings" db=2.8ms queue=0.2ms idle=775.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:43.575 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:43.578 [debug] QUERY OK source="settings" db=4.6ms queue=2.0ms idle=776.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:29:43.579 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:29:43.580 [error] #PID<0.142756.0> running PinchflatWeb.Endpoint (connection #PID<0.142754.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /sources/1/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142754.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51078}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142756.0>, params: %{}, path_info: ["sources", "1", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.101"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJvJRqXhIyBimRYAB78h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142754.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51078}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142754.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51078}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142756.0>, params: %{}, path_info: ["sources", "1", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claud (truncated) 12:29:43.577 [error] #PID<0.142757.0> running PinchflatWeb.Endpoint (connection #PID<0.142755.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /sources/1/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51092}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142757.0>, params: %{}, path_info: ["sources", "1", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.101"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJvJRqXoAPJHC9AAB3MS"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51092}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142755.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 51092}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142757.0>, params: %{}, path_info: ["sources", "1", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, (truncated) 12:29:47.530 [info] {"source":"oban","duration":1469,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:30:00.427 [info] {"source":"oban","duration":451,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:30:03.139 [info] GET /download_logs 12:30:03.139 [debug] Processing with PinchflatWeb.Settings.SettingController.download_logs/2 Parameters: %{} Pipelines: [:browser] 12:30:03.139 [info] GET /sources/1/force_metadata_refresh 12:30:03.176 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=1378.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:30:03.178 [debug] QUERY OK source="settings" db=1.4ms idle=1265.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:30:03.178 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:30:03.179 [error] #PID<0.142761.0> running PinchflatWeb.Endpoint (connection #PID<0.142759.0>, stream id 1) terminated Server: pinchflat-server.tail1d371e.ts.net:80 (http) Request: GET /sources/1/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142759.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35864}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142761.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"x-forwarded-for", "216.73.216.101"}, {"x-forwarded-host", "pinchflat-server.tail1d371e.ts.net"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GJvJSzRvnJSC4pEAB3My"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142759.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35864}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.142759.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat-server.tail1d371e.ts.net", peer: {{172, 17, 0, 1}, 35864}, bindings: %{}, sock: {{172, 17, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat-server.tail1d371e.ts.net", "tailscale-funnel-request" => "?1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "x-forwarded-for" => "216.73.216.101", "x-forwarded-host" => "pinchflat-server.tail1d371e.ts.net", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, has_body: false, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat-server.tail1d371e.ts.net", method: "GET", owner: #PID<0.142761.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat-server.tail1d371e.ts.net", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 17, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat-server.tail1d371e.ts.net"}, {"tailscale-funnel-request", "?1"}, {"user-agent", "Mozilla/5.0 Ap (truncated)