21:15:21.447 [debug] Current batch of media processed. Will check again in 1000ms 21:15:22.448 [debug] Current batch of media processed. Will check again in 1000ms 21:15:23.449 [debug] Current batch of media processed. Will check again in 1000ms 21:15:24.450 [debug] Current batch of media processed. Will check again in 1000ms 21:15:25.451 [debug] Current batch of media processed. Will check again in 1000ms 21:15:26.326 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:26.452 [debug] Current batch of media processed. Will check again in 1000ms 21:15:27.453 [debug] Current batch of media processed. Will check again in 1000ms 21:15:28.454 [debug] Current batch of media processed. Will check again in 1000ms 21:15:29.455 [debug] Current batch of media processed. Will check again in 1000ms 21:15:30.456 [debug] Current batch of media processed. Will check again in 1000ms 21:15:31.457 [debug] Current batch of media processed. Will check again in 1000ms 21:15:32.459 [debug] Current batch of media processed. Will check again in 1000ms 21:15:33.460 [debug] Current batch of media processed. Will check again in 1000ms 21:15:34.461 [debug] Current batch of media processed. Will check again in 1000ms 21:15:35.462 [debug] Current batch of media processed. Will check again in 1000ms 21:15:36.464 [debug] Current batch of media processed. Will check again in 1000ms 21:15:37.464 [debug] Current batch of media processed. Will check again in 1000ms 21:15:38.465 [debug] Current batch of media processed. Will check again in 1000ms 21:15:39.466 [debug] Current batch of media processed. Will check again in 1000ms 21:15:40.467 [debug] Current batch of media processed. Will check again in 1000ms 21:15:41.476 [debug] Current batch of media processed. Will check again in 1000ms 21:15:42.477 [debug] Current batch of media processed. Will check again in 1000ms 21:15:43.479 [debug] Current batch of media processed. Will check again in 1000ms 21:15:44.480 [debug] Current batch of media processed. Will check again in 1000ms 21:15:45.481 [debug] Current batch of media processed. Will check again in 1000ms 21:15:46.483 [debug] Current batch of media processed. Will check again in 1000ms 21:15:47.484 [debug] Current batch of media processed. Will check again in 1000ms 21:15:48.485 [debug] Current batch of media processed. Will check again in 1000ms 21:15:49.488 [debug] Current batch of media processed. Will check again in 1000ms 21:15:50.489 [debug] Current batch of media processed. Will check again in 1000ms 21:15:51.490 [debug] Current batch of media processed. Will check again in 1000ms 21:15:52.492 [debug] Current batch of media processed. Will check again in 1000ms 21:15:53.493 [debug] Current batch of media processed. Will check again in 1000ms 21:15:54.494 [debug] Current batch of media processed. Will check again in 1000ms 21:15:55.495 [debug] Current batch of media processed. Will check again in 1000ms 21:15:56.328 [info] {"source":"oban","duration":837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:56.496 [debug] Current batch of media processed. Will check again in 1000ms 21:15:57.497 [debug] Current batch of media processed. Will check again in 1000ms 21:15:58.498 [debug] Current batch of media processed. Will check again in 1000ms 21:15:59.499 [debug] Current batch of media processed. Will check again in 1000ms 21:16:00.500 [debug] Current batch of media processed. Will check again in 1000ms 21:16:00.761 [info] {"source":"oban","duration":3135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:16:01.502 [debug] Current batch of media processed. Will check again in 1000ms 21:16:02.504 [debug] Current batch of media processed. Will check again in 1000ms 21:16:03.504 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/34/1\n\nЗаполняем таблицу композиций переносов и поворотов на плоскости. Убеждаемся, что переносы, а также переносы и повороты вместе, образуют подгруппы в группе движений плоскости.\n\n0:00 Структура таблицы композиций\n5:13 Композиция поворота и переноса\n10:25 Композиция переноса и поворота\n14:29 Композиция двух поворотов\n22:47 Приложение к задаче Наполеона\n29:56 Подгруппа собственных движений\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "duration" => 1964, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120400 - 34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики.mp4", "id" => "ng0wqgsiyBg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ng0wqgsiyBg", "playlist_index" => 34, "timestamp" => 1638626420, "title" => "34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики", "upload_date" => "20211204"} 21:16:03.506 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1857.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:16:03.506 [debug] QUERY OK source="sources" db=0.3ms idle=1852.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:16:03.508 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=996.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-04 14:00:20Z], 116] 21:16:03.516 [debug] QUERY OK source="media_items" db=5.4ms queue=0.1ms idle=858.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/34/1\n\nЗаполняем таблицу композиций переносов и поворотов на плоскости. Убеждаемся, что переносы, а также переносы и повороты вместе, образуют подгруппы в группе движений плоскости.\n\n0:00 Структура таблицы композиций\n5:13 Композиция поворота и переноса\n10:25 Композиция переноса и поворота\n14:29 Композиция двух поворотов\n22:47 Приложение к задаче Наполеона\n29:56 Подгруппа собственных движений\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики", "315fb916-05c9-4c6d-af9c-c241d04f54b3", 1964, false, "ng0wqgsiyBg", "https://www.youtube.com/watch?v=ng0wqgsiyBg", 34, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120400 - 34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2021-12-04 14:00:20Z], ~U[2026-06-03 18:16:03Z], ~U[2026-06-03 18:16:03Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/34/1\n\nЗаполняем таблицу композиций переносов и поворотов на плоскости. Убеждаемся, что переносы, а также переносы и повороты вместе, образуют подгруппы в группе движений плоскости.\n\n0:00 Структура таблицы композиций\n5:13 Композиция поворота и переноса\n10:25 Композиция переноса и поворота\n14:29 Композиция двух поворотов\n22:47 Приложение к задаче Наполеона\n29:56 Подгруппа собственных движений\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики", 1964, false, "ng0wqgsiyBg", "https://www.youtube.com/watch?v=ng0wqgsiyBg", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120400 - 34. Таблица композиций движений плоскости. Часть 1. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2021-12-04 14:00:20Z]] 21:16:03.517 [debug] QUERY OK source="sources" db=0.9ms idle=858.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:16:03.518 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:16:03.519 [debug] QUERY OK source="media_items" db=0.4ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [165274] 21:16:03.519 [debug] Current batch of media processed. Will check again in 1000ms 21:16:04.519 [debug] Current batch of media processed. Will check again in 1000ms 21:16:05.522 [debug] Current batch of media processed. Will check again in 1000ms 21:16:06.523 [debug] Current batch of media processed. Will check again in 1000ms 21:16:07.524 [debug] Current batch of media processed. Will check again in 1000ms 21:16:08.525 [debug] Current batch of media processed. Will check again in 1000ms 21:16:09.526 [debug] Current batch of media processed. Will check again in 1000ms 21:16:10.527 [debug] Current batch of media processed. Will check again in 1000ms 21:16:11.528 [debug] Current batch of media processed. Will check again in 1000ms 21:16:12.529 [debug] Current batch of media processed. Will check again in 1000ms 21:16:13.530 [debug] Current batch of media processed. Will check again in 1000ms 21:16:14.531 [debug] Current batch of media processed. Will check again in 1000ms 21:16:15.532 [debug] Current batch of media processed. Will check again in 1000ms 21:16:16.533 [debug] Current batch of media processed. Will check again in 1000ms 21:16:17.534 [debug] Current batch of media processed. Will check again in 1000ms 21:16:18.544 [debug] Current batch of media processed. Will check again in 1000ms 21:16:19.546 [debug] Current batch of media processed. Will check again in 1000ms 21:16:20.547 [debug] Current batch of media processed. Will check again in 1000ms 21:16:21.549 [debug] Current batch of media processed. Will check again in 1000ms 21:16:22.551 [debug] Current batch of media processed. Will check again in 1000ms 21:16:23.552 [debug] Current batch of media processed. Will check again in 1000ms 21:16:24.553 [debug] Current batch of media processed. Will check again in 1000ms 21:16:25.554 [debug] Current batch of media processed. Will check again in 1000ms 21:16:26.330 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:26.555 [debug] Current batch of media processed. Will check again in 1000ms 21:16:27.556 [debug] Current batch of media processed. Will check again in 1000ms 21:16:28.558 [debug] Current batch of media processed. Will check again in 1000ms 21:16:29.559 [debug] Current batch of media processed. Will check again in 1000ms 21:16:30.560 [debug] Current batch of media processed. Will check again in 1000ms 21:16:31.561 [debug] Current batch of media processed. Will check again in 1000ms 21:16:32.563 [debug] Current batch of media processed. Will check again in 1000ms 21:16:33.564 [debug] Current batch of media processed. Will check again in 1000ms 21:16:34.565 [debug] Current batch of media processed. Will check again in 1000ms 21:16:35.566 [debug] Current batch of media processed. Will check again in 1000ms 21:16:36.567 [debug] Current batch of media processed. Will check again in 1000ms 21:16:37.568 [debug] Current batch of media processed. Will check again in 1000ms 21:16:38.569 [debug] Current batch of media processed. Will check again in 1000ms 21:16:39.571 [debug] Current batch of media processed. Will check again in 1000ms 21:16:40.572 [debug] Current batch of media processed. Will check again in 1000ms 21:16:41.573 [debug] Current batch of media processed. Will check again in 1000ms 21:16:42.574 [debug] Current batch of media processed. Will check again in 1000ms 21:16:43.575 [debug] Current batch of media processed. Will check again in 1000ms 21:16:44.576 [debug] Current batch of media processed. Will check again in 1000ms 21:16:45.577 [debug] Current batch of media processed. Will check again in 1000ms 21:16:46.578 [debug] Current batch of media processed. Will check again in 1000ms 21:16:47.579 [debug] Current batch of media processed. Will check again in 1000ms 21:16:48.580 [debug] Current batch of media processed. Will check again in 1000ms 21:16:49.581 [debug] Current batch of media processed. Will check again in 1000ms 21:16:50.582 [debug] Current batch of media processed. Will check again in 1000ms 21:16:51.584 [debug] Current batch of media processed. Will check again in 1000ms 21:16:52.585 [debug] Current batch of media processed. Will check again in 1000ms 21:16:53.588 [debug] Current batch of media processed. Will check again in 1000ms 21:16:54.588 [debug] Current batch of media processed. Will check again in 1000ms 21:16:55.589 [debug] Current batch of media processed. Will check again in 1000ms 21:16:56.334 [info] {"source":"oban","duration":2282,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:56.590 [debug] Current batch of media processed. Will check again in 1000ms 21:16:57.591 [debug] Current batch of media processed. Will check again in 1000ms 21:16:58.592 [debug] Current batch of media processed. Will check again in 1000ms 21:16:59.593 [debug] Current batch of media processed. Will check again in 1000ms 21:17:00.595 [debug] Current batch of media processed. Will check again in 1000ms 21:17:00.765 [info] {"source":"oban","duration":2395,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:17:01.605 [debug] Current batch of media processed. Will check again in 1000ms 21:17:02.613 [debug] Current batch of media processed. Will check again in 1000ms 21:17:03.614 [debug] Current batch of media processed. Will check again in 1000ms 21:17:04.616 [debug] Current batch of media processed. Will check again in 1000ms 21:17:05.616 [debug] Current batch of media processed. Will check again in 1000ms 21:17:06.617 [debug] Current batch of media processed. Will check again in 1000ms 21:17:07.618 [debug] Current batch of media processed. Will check again in 1000ms 21:17:08.619 [debug] Current batch of media processed. Will check again in 1000ms 21:17:09.620 [debug] Current batch of media processed. Will check again in 1000ms 21:17:10.621 [debug] Current batch of media processed. Will check again in 1000ms 21:17:11.622 [debug] Current batch of media processed. Will check again in 1000ms 21:17:12.623 [debug] Current batch of media processed. Will check again in 1000ms 21:17:13.624 [debug] Current batch of media processed. Will check again in 1000ms 21:17:14.625 [debug] Current batch of media processed. Will check again in 1000ms 21:17:15.626 [debug] Current batch of media processed. Will check again in 1000ms 21:17:16.627 [debug] Current batch of media processed. Will check again in 1000ms 21:17:17.629 [debug] Current batch of media processed. Will check again in 1000ms 21:17:18.629 [debug] Current batch of media processed. Will check again in 1000ms 21:17:19.631 [debug] Current batch of media processed. Will check again in 1000ms 21:17:20.631 [debug] Current batch of media processed. Will check again in 1000ms 21:17:21.632 [debug] Current batch of media processed. Will check again in 1000ms 21:17:22.634 [debug] Current batch of media processed. Will check again in 1000ms 21:17:23.635 [debug] Current batch of media processed. Will check again in 1000ms 21:17:24.636 [debug] Current batch of media processed. Will check again in 1000ms 21:17:25.637 [debug] Current batch of media processed. Will check again in 1000ms 21:17:26.336 [info] {"source":"oban","duration":1238,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:26.638 [debug] Current batch of media processed. Will check again in 1000ms 21:17:27.639 [debug] Current batch of media processed. Will check again in 1000ms 21:17:28.640 [debug] Current batch of media processed. Will check again in 1000ms 21:17:29.642 [debug] Current batch of media processed. Will check again in 1000ms 21:17:30.643 [debug] Current batch of media processed. Will check again in 1000ms 21:17:31.647 [debug] Current batch of media processed. Will check again in 1000ms 21:17:32.648 [debug] Current batch of media processed. Will check again in 1000ms 21:17:33.649 [debug] Current batch of media processed. Will check again in 1000ms 21:17:34.650 [debug] Current batch of media processed. Will check again in 1000ms 21:17:35.651 [debug] Current batch of media processed. Will check again in 1000ms 21:17:36.652 [debug] Current batch of media processed. Will check again in 1000ms 21:17:37.653 [debug] Current batch of media processed. Will check again in 1000ms 21:17:38.654 [debug] Current batch of media processed. Will check again in 1000ms 21:17:39.655 [debug] Current batch of media processed. Will check again in 1000ms 21:17:40.656 [debug] Current batch of media processed. Will check again in 1000ms 21:17:41.657 [debug] Current batch of media processed. Will check again in 1000ms 21:17:42.658 [debug] Current batch of media processed. Will check again in 1000ms 21:17:43.659 [debug] Current batch of media processed. Will check again in 1000ms 21:17:44.660 [debug] Current batch of media processed. Will check again in 1000ms 21:17:45.661 [debug] Current batch of media processed. Will check again in 1000ms 21:17:46.662 [debug] Current batch of media processed. Will check again in 1000ms 21:17:47.663 [debug] Current batch of media processed. Will check again in 1000ms 21:17:48.664 [debug] Current batch of media processed. Will check again in 1000ms 21:17:49.665 [debug] Current batch of media processed. Will check again in 1000ms 21:17:50.666 [debug] Current batch of media processed. Will check again in 1000ms 21:17:51.668 [debug] Current batch of media processed. Will check again in 1000ms 21:17:52.668 [debug] Current batch of media processed. Will check again in 1000ms 21:17:53.669 [debug] Current batch of media processed. Will check again in 1000ms 21:17:54.670 [debug] Current batch of media processed. Will check again in 1000ms 21:17:55.671 [debug] Current batch of media processed. Will check again in 1000ms 21:17:56.342 [info] {"source":"oban","duration":5013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:56.672 [debug] Current batch of media processed. Will check again in 1000ms 21:17:57.673 [debug] Current batch of media processed. Will check again in 1000ms 21:17:58.674 [debug] Current batch of media processed. Will check again in 1000ms 21:17:59.675 [debug] Current batch of media processed. Will check again in 1000ms 21:18:00.677 [debug] Current batch of media processed. Will check again in 1000ms 21:18:00.765 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:18:01.679 [debug] Current batch of media processed. Will check again in 1000ms 21:18:02.679 [debug] Current batch of media processed. Will check again in 1000ms 21:18:03.680 [debug] Current batch of media processed. Will check again in 1000ms 21:18:04.681 [debug] Current batch of media processed. Will check again in 1000ms 21:18:05.682 [debug] Current batch of media processed. Will check again in 1000ms 21:18:06.683 [debug] Current batch of media processed. Will check again in 1000ms 21:18:07.684 [debug] Current batch of media processed. Will check again in 1000ms 21:18:08.685 [debug] Current batch of media processed. Will check again in 1000ms 21:18:09.686 [debug] Current batch of media processed. Will check again in 1000ms 21:18:10.687 [debug] Current batch of media processed. Will check again in 1000ms 21:18:11.688 [debug] Current batch of media processed. Will check again in 1000ms 21:18:12.691 [debug] Current batch of media processed. Will check again in 1000ms 21:18:13.692 [debug] Current batch of media processed. Will check again in 1000ms 21:18:14.693 [debug] Current batch of media processed. Will check again in 1000ms 21:18:15.697 [debug] Current batch of media processed. Will check again in 1000ms 21:18:16.697 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/35/1\n\nЗавершаем заполнение таблицы композиций. Находим композиции переносов и поворотов с отражениями в различных случаях и, как итог, композицию двух различных скользящих симметрий.\n\n0:00 Композиции с отражениями\n5:42 Скользящая симметрия с переносом или с поворотом\n11:30 Композиция двух скользящих симметрий\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "duration" => 1009, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120900 - 35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики.mp4", "id" => "g73TAaahVo8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=g73TAaahVo8", "playlist_index" => 35, "timestamp" => 1639058413, "title" => "35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики", "upload_date" => "20211209"} 21:18:16.698 [debug] QUERY OK source="sources" db=0.5ms idle=1177.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:18:16.700 [debug] QUERY OK source="sources" db=0.6ms idle=1178.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:18:16.701 [debug] QUERY OK source="media_items" db=0.8ms idle=567.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-09 14:00:13Z], 116] 21:18:16.707 [debug] QUERY OK source="media_items" db=4.6ms queue=0.1ms idle=562.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/35/1\n\nЗавершаем заполнение таблицы композиций. Находим композиции переносов и поворотов с отражениями в различных случаях и, как итог, композицию двух различных скользящих симметрий.\n\n0:00 Композиции с отражениями\n5:42 Скользящая симметрия с переносом или с поворотом\n11:30 Композиция двух скользящих симметрий\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики", "6739adef-76ec-4167-abd7-2a3f527fbdcd", 1009, false, "g73TAaahVo8", "https://www.youtube.com/watch?v=g73TAaahVo8", 35, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120900 - 35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2021-12-09 14:00:13Z], ~U[2026-06-03 18:18:16Z], ~U[2026-06-03 18:18:16Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/35/1\n\nЗавершаем заполнение таблицы композиций. Находим композиции переносов и поворотов с отражениями в различных случаях и, как итог, композицию двух различных скользящих симметрий.\n\n0:00 Композиции с отражениями\n5:42 Скользящая симметрия с переносом или с поворотом\n11:30 Композиция двух скользящих симметрий\n\nКурс 100 уроков математики (плейлист обновляется): https://www.youtube.com/playlist?list=PLqBfxn8OBMGrsA_YynaQWqHKhL7kEvL4X\n\n===========================\n\nChildrenScience - канал некоммерческого фонда \"Дети и наука\". Наша цель - улучшить качество школьного образования. Для этого мы привлекаем выдающихся учителей, создаем системные курсы из видеоуроков и заданий, готовим методические материалы для преподавателей.\n\nПодпишитесь на наш канал: https://www.youtube.com/channel/UCf053FwQD-hnTY7aaaWTaVQ?sub_confirmation=1\n\nНаш сайт - https://clck.ru/UwkTv\n\n===========================\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #Савватеев #100уроковматематики\n\nВозрастное ограничение: 0+", "35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики", 1009, false, "g73TAaahVo8", "https://www.youtube.com/watch?v=g73TAaahVo8", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2021/s2021e120900 - 35. Таблица композиций движений плоскости. Часть 2. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2021-12-09 14:00:13Z]] 21:18:16.709 [debug] QUERY OK source="sources" db=1.4ms idle=187.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:18:16.710 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:18:16.710 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [165276] 21:18:16.711 [debug] Current batch of media processed. Will check again in 1000ms 21:18:17.712 [debug] Current batch of media processed. Will check again in 1000ms 21:18:18.713 [debug] Current batch of media processed. Will check again in 1000ms 21:18:19.714 [debug] Current batch of media processed. Will check again in 1000ms 21:18:20.715 [debug] Current batch of media processed. Will check again in 1000ms 21:18:21.716 [debug] Current batch of media processed. Will check again in 1000ms 21:18:22.717 [debug] Current batch of media processed. Will check again in 1000ms 21:18:23.718 [debug] Current batch of media processed. Will check again in 1000ms 21:18:24.719 [debug] Current batch of media processed. Will check again in 1000ms 21:18:25.720 [debug] Current batch of media processed. Will check again in 1000ms 21:18:26.344 [info] {"source":"oban","duration":1272,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:26.721 [debug] Current batch of media processed. Will check again in 1000ms 21:18:27.722 [debug] Current batch of media processed. Will check again in 1000ms 21:18:28.723 [debug] Current batch of media processed. Will check again in 1000ms 21:18:29.724 [debug] Current batch of media processed. Will check again in 1000ms 21:18:30.725 [debug] Current batch of media processed. Will check again in 1000ms 21:18:31.726 [debug] Current batch of media processed. Will check again in 1000ms 21:18:32.728 [debug] Current batch of media processed. Will check again in 1000ms 21:18:33.729 [debug] Current batch of media processed. Will check again in 1000ms 21:18:34.730 [debug] Current batch of media processed. Will check again in 1000ms 21:18:35.731 [debug] Current batch of media processed. Will check again in 1000ms 21:18:36.732 [debug] Current batch of media processed. Will check again in 1000ms 21:18:37.733 [debug] Current batch of media processed. Will check again in 1000ms 21:18:38.734 [debug] Current batch of media processed. Will check again in 1000ms 21:18:39.735 [debug] Current batch of media processed. Will check again in 1000ms 21:18:40.736 [debug] Current batch of media processed. Will check again in 1000ms 21:18:41.737 [debug] Current batch of media processed. Will check again in 1000ms 21:18:42.739 [debug] Current batch of media processed. Will check again in 1000ms 21:18:43.742 [debug] Current batch of media processed. Will check again in 1000ms 21:18:44.743 [debug] Current batch of media processed. Will check again in 1000ms 21:18:45.745 [debug] Current batch of media processed. Will check again in 1000ms 21:18:46.747 [debug] Current batch of media processed. Will check again in 1000ms 21:18:47.748 [debug] Current batch of media processed. Will check again in 1000ms 21:18:48.749 [debug] Current batch of media processed. Will check again in 1000ms 21:18:49.750 [debug] Current batch of media processed. Will check again in 1000ms 21:18:50.751 [debug] Current batch of media processed. Will check again in 1000ms 21:18:51.752 [debug] Current batch of media processed. Will check again in 1000ms 21:18:52.753 [debug] Current batch of media processed. Will check again in 1000ms 21:18:53.756 [debug] Current batch of media processed. Will check again in 1000ms 21:18:54.757 [debug] Current batch of media processed. Will check again in 1000ms 21:18:55.758 [debug] Current batch of media processed. Will check again in 1000ms 21:18:56.346 [info] {"source":"oban","duration":819,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:56.759 [debug] Current batch of media processed. Will check again in 1000ms 21:18:57.760 [debug] Current batch of media processed. Will check again in 1000ms 21:18:58.762 [debug] Current batch of media processed. Will check again in 1000ms 21:18:59.763 [debug] Current batch of media processed. Will check again in 1000ms 21:19:00.765 [debug] Current batch of media processed. Will check again in 1000ms 21:19:00.772 [info] {"source":"oban","duration":6149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:19:01.766 [debug] Current batch of media processed. Will check again in 1000ms 21:19:02.767 [debug] Current batch of media processed. Will check again in 1000ms 21:19:03.769 [debug] Current batch of media processed. Will check again in 1000ms 21:19:04.769 [debug] Current batch of media processed. Will check again in 1000ms 21:19:05.770 [debug] Current batch of media processed. Will check again in 1000ms 21:19:06.771 [debug] Current batch of media processed. Will check again in 1000ms 21:19:07.772 [debug] Current batch of media processed. Will check again in 1000ms 21:19:08.776 [debug] Current batch of media processed. Will check again in 1000ms 21:19:09.778 [debug] Current batch of media processed. Will check again in 1000ms 21:19:10.779 [debug] Current batch of media processed. Will check again in 1000ms 21:19:11.780 [debug] Current batch of media processed. Will check again in 1000ms 21:19:12.782 [debug] Current batch of media processed. Will check again in 1000ms 21:19:13.782 [debug] Current batch of media processed. Will check again in 1000ms 21:19:14.783 [debug] Current batch of media processed. Will check again in 1000ms 21:19:15.784 [debug] Current batch of media processed. Will check again in 1000ms 21:19:16.786 [debug] Current batch of media processed. Will check again in 1000ms 21:19:17.786 [debug] Current batch of media processed. Will check again in 1000ms 21:19:18.787 [debug] Current batch of media processed. Will check again in 1000ms 21:19:19.788 [debug] Current batch of media processed. Will check again in 1000ms 21:19:20.789 [debug] Current batch of media processed. Will check again in 1000ms 21:19:21.791 [debug] Current batch of media processed. Will check again in 1000ms 21:19:22.792 [debug] Current batch of media processed. Will check again in 1000ms 21:19:23.793 [debug] Current batch of media processed. Will check again in 1000ms 21:19:24.794 [debug] Current batch of media processed. Will check again in 1000ms 21:19:25.795 [debug] Current batch of media processed. Will check again in 1000ms 21:19:26.348 [info] {"source":"oban","duration":1109,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:26.796 [debug] Current batch of media processed. Will check again in 1000ms 21:19:27.797 [debug] Current batch of media processed. Will check again in 1000ms 21:19:28.798 [debug] Current batch of media processed. Will check again in 1000ms 21:19:29.799 [debug] Current batch of media processed. Will check again in 1000ms 21:19:30.800 [debug] Current batch of media processed. Will check again in 1000ms 21:19:31.801 [debug] Current batch of media processed. Will check again in 1000ms 21:19:32.802 [debug] Current batch of media processed. Will check again in 1000ms 21:19:33.803 [debug] Current batch of media processed. Will check again in 1000ms 21:19:34.805 [debug] Current batch of media processed. Will check again in 1000ms 21:19:35.806 [debug] Current batch of media processed. Will check again in 1000ms 21:19:36.807 [debug] Current batch of media processed. Will check again in 1000ms 21:19:37.808 [debug] Current batch of media processed. Will check again in 1000ms 21:19:38.810 [debug] Current batch of media processed. Will check again in 1000ms 21:19:39.811 [debug] Current batch of media processed. Will check again in 1000ms 21:19:40.812 [debug] Current batch of media processed. Will check again in 1000ms 21:19:41.813 [debug] Current batch of media processed. Will check again in 1000ms 21:19:42.815 [debug] Current batch of media processed. Will check again in 1000ms 21:19:43.816 [debug] Current batch of media processed. Will check again in 1000ms 21:19:44.817 [debug] Current batch of media processed. Will check again in 1000ms 21:19:45.818 [debug] Current batch of media processed. Will check again in 1000ms 21:19:46.819 [debug] Current batch of media processed. Will check again in 1000ms 21:19:47.820 [debug] Current batch of media processed. Will check again in 1000ms 21:19:48.821 [debug] Current batch of media processed. Will check again in 1000ms 21:19:49.822 [debug] Current batch of media processed. Will check again in 1000ms 21:19:50.823 [debug] Current batch of media processed. Will check again in 1000ms 21:19:51.825 [debug] Current batch of media processed. Will check again in 1000ms 21:19:52.826 [debug] Current batch of media processed. Will check again in 1000ms 21:19:53.827 [debug] Current batch of media processed. Will check again in 1000ms 21:19:54.828 [debug] Current batch of media processed. Will check again in 1000ms 21:19:55.829 [debug] Current batch of media processed. Will check again in 1000ms 21:19:56.350 [info] {"source":"oban","duration":1368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:56.831 [debug] Current batch of media processed. Will check again in 1000ms 21:19:57.831 [debug] Current batch of media processed. Will check again in 1000ms 21:19:58.832 [debug] Current batch of media processed. Will check again in 1000ms 21:19:59.833 [debug] Current batch of media processed. Will check again in 1000ms 21:20:00.773 [info] {"source":"oban","duration":276,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:20:00.834 [debug] Current batch of media processed. Will check again in 1000ms 21:20:01.835 [debug] Current batch of media processed. Will check again in 1000ms 21:20:02.836 [debug] Current batch of media processed. Will check again in 1000ms 21:20:03.837 [debug] Current batch of media processed. Will check again in 1000ms 21:20:04.839 [debug] Current batch of media processed. Will check again in 1000ms 21:20:05.841 [debug] Current batch of media processed. Will check again in 1000ms 21:20:06.841 [debug] Current batch of media processed. Will check again in 1000ms 21:20:07.842 [debug] Current batch of media processed. Will check again in 1000ms 21:20:08.843 [debug] Current batch of media processed. Will check again in 1000ms 21:20:09.844 [debug] Current batch of media processed. Will check again in 1000ms 21:20:10.845 [debug] Current batch of media processed. Will check again in 1000ms 21:20:11.846 [debug] Current batch of media processed. Will check again in 1000ms 21:20:12.847 [debug] Current batch of media processed. Will check again in 1000ms 21:20:13.848 [debug] Current batch of media processed. Will check again in 1000ms 21:20:14.849 [debug] Current batch of media processed. Will check again in 1000ms 21:20:15.850 [debug] Current batch of media processed. Will check again in 1000ms 21:20:16.851 [debug] Current batch of media processed. Will check again in 1000ms 21:20:17.852 [debug] Current batch of media processed. Will check again in 1000ms 21:20:18.853 [debug] Current batch of media processed. Will check again in 1000ms 21:20:19.854 [debug] Current batch of media processed. Will check again in 1000ms 21:20:20.855 [debug] Current batch of media processed. Will check again in 1000ms 21:20:21.856 [debug] Current batch of media processed. Will check again in 1000ms 21:20:22.857 [debug] Current batch of media processed. Will check again in 1000ms 21:20:23.858 [debug] Current batch of media processed. Will check again in 1000ms 21:20:24.860 [debug] Current batch of media processed. Will check again in 1000ms 21:20:25.861 [debug] Current batch of media processed. Will check again in 1000ms 21:20:26.352 [info] {"source":"oban","duration":845,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:26.863 [debug] Current batch of media processed. Will check again in 1000ms 21:20:27.864 [debug] Current batch of media processed. Will check again in 1000ms 21:20:28.865 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/36/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Натуральные числа\n3:12 - Целые числа\n8:18 - Рациональные числа\n12:54 - Вещественные числа\n17:10 - Группы, кольца, поля\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "duration" => 1448, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112300 - 36. Числовые системы. Алексей Савватеев. 100 уроков математики.mp4", "id" => "aIFrXzwz3qU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aIFrXzwz3qU", "playlist_index" => 36, "timestamp" => 1669215600, "title" => "36. Числовые системы. Алексей Савватеев. 100 уроков математики", "upload_date" => "20221123"} 21:20:28.866 [debug] QUERY OK source="sources" db=0.6ms idle=1342.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:20:28.867 [debug] QUERY OK source="sources" db=0.3ms idle=1251.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:20:28.869 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1246.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-23 15:00:00Z], 116] 21:20:28.896 [debug] QUERY OK source="media_items" db=26.3ms idle=251.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/36/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Натуральные числа\n3:12 - Целые числа\n8:18 - Рациональные числа\n12:54 - Вещественные числа\n17:10 - Группы, кольца, поля\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "36. Числовые системы. Алексей Савватеев. 100 уроков математики", "799057cf-89d8-46b2-8e41-6efc7499cacc", 1448, false, "aIFrXzwz3qU", "https://www.youtube.com/watch?v=aIFrXzwz3qU", 36, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112300 - 36. Числовые системы. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2022-11-23 15:00:00Z], ~U[2026-06-03 18:20:28Z], ~U[2026-06-03 18:20:28Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/36/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Натуральные числа\n3:12 - Целые числа\n8:18 - Рациональные числа\n12:54 - Вещественные числа\n17:10 - Группы, кольца, поля\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "36. Числовые системы. Алексей Савватеев. 100 уроков математики", 1448, false, "aIFrXzwz3qU", "https://www.youtube.com/watch?v=aIFrXzwz3qU", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112300 - 36. Числовые системы. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2022-11-23 15:00:00Z]] 21:20:28.901 [debug] QUERY OK source="sources" db=3.5ms queue=0.1ms idle=272.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:20:28.904 [debug] QUERY OK source="media_profiles" db=2.6ms queue=0.6ms idle=34.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:20:28.905 [debug] QUERY OK source="media_items" db=0.5ms idle=37.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 [165278] 21:20:28.906 [debug] Current batch of media processed. Will check again in 1000ms 21:20:29.906 [debug] Current batch of media processed. Will check again in 1000ms 21:20:30.907 [debug] Current batch of media processed. Will check again in 1000ms 21:20:31.909 [debug] Current batch of media processed. Will check again in 1000ms 21:20:32.911 [debug] Current batch of media processed. Will check again in 1000ms 21:20:33.911 [debug] Current batch of media processed. Will check again in 1000ms 21:20:34.912 [debug] Current batch of media processed. Will check again in 1000ms 21:20:35.913 [debug] Current batch of media processed. Will check again in 1000ms 21:20:36.914 [debug] Current batch of media processed. Will check again in 1000ms 21:20:37.915 [debug] Current batch of media processed. Will check again in 1000ms 21:20:38.916 [debug] Current batch of media processed. Will check again in 1000ms 21:20:39.917 [debug] Current batch of media processed. Will check again in 1000ms 21:20:40.918 [debug] Current batch of media processed. Will check again in 1000ms 21:20:41.919 [debug] Current batch of media processed. Will check again in 1000ms 21:20:42.921 [debug] Current batch of media processed. Will check again in 1000ms 21:20:43.922 [debug] Current batch of media processed. Will check again in 1000ms 21:20:44.923 [debug] Current batch of media processed. Will check again in 1000ms 21:20:45.924 [debug] Current batch of media processed. Will check again in 1000ms 21:20:46.925 [debug] Current batch of media processed. Will check again in 1000ms 21:20:47.926 [debug] Current batch of media processed. Will check again in 1000ms 21:20:48.927 [debug] Current batch of media processed. Will check again in 1000ms 21:20:49.928 [debug] Current batch of media processed. Will check again in 1000ms 21:20:50.929 [debug] Current batch of media processed. Will check again in 1000ms 21:20:51.930 [debug] Current batch of media processed. Will check again in 1000ms 21:20:52.932 [debug] Current batch of media processed. Will check again in 1000ms 21:20:53.934 [debug] Current batch of media processed. Will check again in 1000ms 21:20:54.935 [debug] Current batch of media processed. Will check again in 1000ms 21:20:55.937 [debug] Current batch of media processed. Will check again in 1000ms 21:20:56.354 [info] {"source":"oban","duration":1025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:56.937 [debug] Current batch of media processed. Will check again in 1000ms 21:20:57.938 [debug] Current batch of media processed. Will check again in 1000ms 21:20:58.939 [debug] Current batch of media processed. Will check again in 1000ms 21:20:59.940 [debug] Current batch of media processed. Will check again in 1000ms 21:21:00.775 [info] {"source":"oban","duration":1198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:21:00.942 [debug] Current batch of media processed. Will check again in 1000ms 21:21:01.943 [debug] Current batch of media processed. Will check again in 1000ms 21:21:02.944 [debug] Current batch of media processed. Will check again in 1000ms 21:21:03.945 [debug] Current batch of media processed. Will check again in 1000ms 21:21:04.946 [debug] Current batch of media processed. Will check again in 1000ms 21:21:05.947 [debug] Current batch of media processed. Will check again in 1000ms 21:21:06.948 [debug] Current batch of media processed. Will check again in 1000ms 21:21:07.949 [debug] Current batch of media processed. Will check again in 1000ms 21:21:08.950 [debug] Current batch of media processed. Will check again in 1000ms 21:21:09.951 [debug] Current batch of media processed. Will check again in 1000ms 21:21:10.952 [debug] Current batch of media processed. Will check again in 1000ms 21:21:11.954 [debug] Current batch of media processed. Will check again in 1000ms 21:21:12.955 [debug] Current batch of media processed. Will check again in 1000ms 21:21:13.956 [debug] Current batch of media processed. Will check again in 1000ms 21:21:14.957 [debug] Current batch of media processed. Will check again in 1000ms 21:21:15.959 [debug] Current batch of media processed. Will check again in 1000ms 21:21:16.960 [debug] Current batch of media processed. Will check again in 1000ms 21:21:17.961 [debug] Current batch of media processed. Will check again in 1000ms 21:21:18.962 [debug] Current batch of media processed. Will check again in 1000ms 21:21:19.963 [debug] Current batch of media processed. Will check again in 1000ms 21:21:20.964 [debug] Current batch of media processed. Will check again in 1000ms 21:21:21.965 [debug] Current batch of media processed. Will check again in 1000ms 21:21:22.967 [debug] Current batch of media processed. Will check again in 1000ms 21:21:23.967 [debug] Current batch of media processed. Will check again in 1000ms 21:21:24.968 [debug] Current batch of media processed. Will check again in 1000ms 21:21:25.969 [debug] Current batch of media processed. Will check again in 1000ms 21:21:26.356 [info] {"source":"oban","duration":1370,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:26.970 [debug] Current batch of media processed. Will check again in 1000ms 21:21:27.971 [debug] Current batch of media processed. Will check again in 1000ms 21:21:28.972 [debug] Current batch of media processed. Will check again in 1000ms 21:21:29.973 [debug] Current batch of media processed. Will check again in 1000ms 21:21:30.975 [debug] Current batch of media processed. Will check again in 1000ms 21:21:31.977 [debug] Current batch of media processed. Will check again in 1000ms 21:21:32.978 [debug] Current batch of media processed. Will check again in 1000ms 21:21:33.979 [debug] Current batch of media processed. Will check again in 1000ms 21:21:34.980 [debug] Current batch of media processed. Will check again in 1000ms 21:21:35.982 [debug] Current batch of media processed. Will check again in 1000ms 21:21:36.983 [debug] Current batch of media processed. Will check again in 1000ms 21:21:37.984 [debug] Current batch of media processed. Will check again in 1000ms 21:21:38.985 [debug] Current batch of media processed. Will check again in 1000ms 21:21:39.986 [debug] Current batch of media processed. Will check again in 1000ms 21:21:40.987 [debug] Current batch of media processed. Will check again in 1000ms 21:21:41.989 [debug] Current batch of media processed. Will check again in 1000ms 21:21:42.990 [debug] Current batch of media processed. Will check again in 1000ms 21:21:43.991 [debug] Current batch of media processed. Will check again in 1000ms 21:21:44.992 [debug] Current batch of media processed. Will check again in 1000ms 21:21:45.993 [debug] Current batch of media processed. Will check again in 1000ms 21:21:46.994 [debug] Current batch of media processed. Will check again in 1000ms 21:21:47.995 [debug] Current batch of media processed. Will check again in 1000ms 21:21:48.996 [debug] Current batch of media processed. Will check again in 1000ms 21:21:49.997 [debug] Current batch of media processed. Will check again in 1000ms 21:21:50.998 [debug] Current batch of media processed. Will check again in 1000ms 21:21:52.000 [debug] Current batch of media processed. Will check again in 1000ms 21:21:53.002 [debug] Current batch of media processed. Will check again in 1000ms 21:21:54.003 [debug] Current batch of media processed. Will check again in 1000ms 21:21:55.004 [debug] Current batch of media processed. Will check again in 1000ms 21:21:56.005 [debug] Current batch of media processed. Will check again in 1000ms 21:21:56.358 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:57.006 [debug] Current batch of media processed. Will check again in 1000ms 21:21:58.007 [debug] Current batch of media processed. Will check again in 1000ms 21:21:59.008 [debug] Current batch of media processed. Will check again in 1000ms 21:22:00.009 [debug] Current batch of media processed. Will check again in 1000ms 21:22:00.776 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:22:01.010 [debug] Current batch of media processed. Will check again in 1000ms 21:22:02.012 [debug] Current batch of media processed. Will check again in 1000ms 21:22:03.015 [debug] Current batch of media processed. Will check again in 1000ms 21:22:04.016 [debug] Current batch of media processed. Will check again in 1000ms 21:22:05.017 [debug] Current batch of media processed. Will check again in 1000ms 21:22:06.018 [debug] Current batch of media processed. Will check again in 1000ms 21:22:07.019 [debug] Current batch of media processed. Will check again in 1000ms 21:22:08.020 [debug] Current batch of media processed. Will check again in 1000ms 21:22:09.021 [debug] Current batch of media processed. Will check again in 1000ms 21:22:10.022 [debug] Current batch of media processed. Will check again in 1000ms 21:22:11.023 [debug] Current batch of media processed. Will check again in 1000ms 21:22:12.025 [debug] Current batch of media processed. Will check again in 1000ms 21:22:13.027 [debug] Current batch of media processed. Will check again in 1000ms 21:22:14.028 [debug] Current batch of media processed. Will check again in 1000ms 21:22:15.029 [debug] Current batch of media processed. Will check again in 1000ms 21:22:16.030 [debug] Current batch of media processed. Will check again in 1000ms 21:22:17.033 [debug] Current batch of media processed. Will check again in 1000ms 21:22:18.037 [debug] Current batch of media processed. Will check again in 1000ms 21:22:19.038 [debug] Current batch of media processed. Will check again in 1000ms 21:22:20.039 [debug] Current batch of media processed. Will check again in 1000ms 21:22:21.040 [debug] Current batch of media processed. Will check again in 1000ms 21:22:22.042 [debug] Current batch of media processed. Will check again in 1000ms 21:22:23.043 [debug] Current batch of media processed. Will check again in 1000ms 21:22:24.044 [debug] Current batch of media processed. Will check again in 1000ms 21:22:25.045 [debug] Current batch of media processed. Will check again in 1000ms 21:22:26.046 [debug] Current batch of media processed. Will check again in 1000ms 21:22:26.360 [info] {"source":"oban","duration":945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:27.047 [debug] Current batch of media processed. Will check again in 1000ms 21:22:28.048 [debug] Current batch of media processed. Will check again in 1000ms 21:22:29.049 [debug] Current batch of media processed. Will check again in 1000ms 21:22:30.050 [debug] Current batch of media processed. Will check again in 1000ms 21:22:31.051 [debug] Current batch of media processed. Will check again in 1000ms 21:22:32.052 [debug] Current batch of media processed. Will check again in 1000ms 21:22:33.053 [debug] Current batch of media processed. Will check again in 1000ms 21:22:34.054 [debug] Current batch of media processed. Will check again in 1000ms 21:22:35.055 [debug] Current batch of media processed. Will check again in 1000ms 21:22:36.056 [debug] Current batch of media processed. Will check again in 1000ms 21:22:37.057 [debug] Current batch of media processed. Will check again in 1000ms 21:22:38.058 [debug] Current batch of media processed. Will check again in 1000ms 21:22:39.059 [debug] Current batch of media processed. Will check again in 1000ms 21:22:40.060 [debug] Current batch of media processed. Will check again in 1000ms 21:22:41.062 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/37/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Квадратное уравнение\n5:45 - Графики квадратного и кубического уравнений\n10:25 - Вывод формул Кардано\n18:05 - Парадокс формул Кардано\n21:25 - Мнимая единица\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "duration" => 1833, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112500 - 37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", "id" => "PuDzVB2lfz4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PuDzVB2lfz4", "playlist_index" => 37, "timestamp" => 1669388415, "title" => "37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики", "upload_date" => "20221125"} 21:22:41.075 [debug] QUERY OK source="sources" db=12.8ms queue=0.1ms idle=1535.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:22:41.077 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1031.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:22:41.080 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=1026.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-25 15:00:15Z], 116] 21:22:41.094 [debug] QUERY OK source="media_items" db=12.7ms queue=0.1ms idle=33.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/37/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Квадратное уравнение\n5:45 - Графики квадратного и кубического уравнений\n10:25 - Вывод формул Кардано\n18:05 - Парадокс формул Кардано\n21:25 - Мнимая единица\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики", "97b4bf2b-b144-4caa-9b25-76906423aabf", 1833, false, "PuDzVB2lfz4", "https://www.youtube.com/watch?v=PuDzVB2lfz4", 37, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112500 - 37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2022-11-25 15:00:15Z], ~U[2026-06-03 18:22:41Z], ~U[2026-06-03 18:22:41Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/37/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Квадратное уравнение\n5:45 - Графики квадратного и кубического уравнений\n10:25 - Вывод формул Кардано\n18:05 - Парадокс формул Кардано\n21:25 - Мнимая единица\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики", 1833, false, "PuDzVB2lfz4", "https://www.youtube.com/watch?v=PuDzVB2lfz4", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112500 - 37. Появление комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2022-11-25 15:00:15Z]] 21:22:41.109 [debug] QUERY OK source="sources" db=14.9ms queue=0.2ms idle=38.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:22:41.111 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms idle=34.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:22:41.113 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=34.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 [165281] 21:22:41.113 [debug] Current batch of media processed. Will check again in 1000ms 21:22:42.114 [debug] Current batch of media processed. Will check again in 1000ms 21:22:43.115 [debug] Current batch of media processed. Will check again in 1000ms 21:22:44.116 [debug] Current batch of media processed. Will check again in 1000ms 21:22:45.117 [debug] Current batch of media processed. Will check again in 1000ms 21:22:46.118 [debug] Current batch of media processed. Will check again in 1000ms 21:22:47.119 [debug] Current batch of media processed. Will check again in 1000ms 21:22:48.120 [debug] Current batch of media processed. Will check again in 1000ms 21:22:49.121 [debug] Current batch of media processed. Will check again in 1000ms 21:22:50.122 [debug] Current batch of media processed. Will check again in 1000ms 21:22:51.123 [debug] Current batch of media processed. Will check again in 1000ms 21:22:52.124 [debug] Current batch of media processed. Will check again in 1000ms 21:22:53.125 [debug] Current batch of media processed. Will check again in 1000ms 21:22:54.126 [debug] Current batch of media processed. Will check again in 1000ms 21:22:55.127 [debug] Current batch of media processed. Will check again in 1000ms 21:22:55.593 [info] GET /sources/136/media/527919/force_download 21:22:55.593 [info] GET /sources/136/media/527910/force_download 21:22:55.594 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=1066.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.594 [debug] QUERY OK source="settings" db=0.9ms idle=1066.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.595 [debug] QUERY OK source="settings" db=0.5ms idle=1067.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.595 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:22:55.595 [error] #PID<0.30215.0> running PinchflatWeb.Endpoint (connection #PID<0.30213.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527919/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/136/media/527919/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527919/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30215.0>, params: %{}, path_info: ["sources", "136", "media", "527919", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527919/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTHrqi5QhcAYAAfuh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527919/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/136/media/527919/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527919/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30215.0>, params: %{}, path_info: ["sources", "136", "media", "527919", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:22:55.598 [debug] QUERY OK source="settings" db=3.5ms idle=509.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.598 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:22:55.599 [error] #PID<0.30216.0> running PinchflatWeb.Endpoint (connection #PID<0.30214.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527910/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/136/media/527910/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527910/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30216.0>, params: %{}, path_info: ["sources", "136", "media", "527910", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527910/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTHrw5sWEVRwAAfvB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527910/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/136/media/527910/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527910/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30216.0>, params: %{}, path_info: ["sources", "136", "media", "527910", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:22:55.958 [info] GET /sources/103/media/537680/force_download 21:22:55.961 [debug] QUERY OK source="settings" db=1.2ms idle=868.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.962 [debug] QUERY OK source="settings" db=0.3ms idle=367.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:55.964 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:22:55.965 [error] #PID<0.30217.0> running PinchflatWeb.Endpoint (connection #PID<0.30214.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/103/media/537680/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/103/media/537680/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/537680/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30217.0>, params: %{}, path_info: ["sources", "103", "media", "537680", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/103/media/537680/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTJC0jRfvDnYAAY5D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/537680/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/103/media/537680/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30214.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/537680/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 10063}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30217.0>, params: %{}, path_info: ["sources", "103", "media", "537680", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:22:56.128 [debug] Current batch of media processed. Will check again in 1000ms 21:22:56.362 [info] {"source":"oban","duration":1105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:56.458 [info] GET /media/43ff1c64-e14f-4ea5-916b-cbfa3d93c134/stream 21:22:56.458 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "43ff1c64-e14f-4ea5-916b-cbfa3d93c134"} Pipelines: [:maybe_basic_auth] 21:22:56.460 [debug] QUERY OK source="media_items" db=1.5ms idle=497.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["43ff1c64-e14f-4ea5-916b-cbfa3d93c134"] 21:22:56.464 [debug] Invalid range request for media item: 43ff1c64-e14f-4ea5-916b-cbfa3d93c134 - serving full file 21:22:56.464 [info] Sent 200 in 5ms 21:22:56.962 [info] GET /sources/136/media/527913/force_download 21:22:56.964 [debug] QUERY OK source="settings" db=1.8ms idle=1000.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:56.966 [debug] QUERY OK source="settings" db=1.7ms queue=0.1ms idle=876.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:56.967 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:22:56.967 [error] #PID<0.30219.0> running PinchflatWeb.Endpoint (connection #PID<0.30213.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527913/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/136/media/527913/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527913/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30219.0>, params: %{}, path_info: ["sources", "136", "media", "527913", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527913/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTMx8f6g3k1UAAfwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527913/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/136/media/527913/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527913/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30219.0>, params: %{}, path_info: ["sources", "136", "media", "527913", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:22:57.129 [debug] Current batch of media processed. Will check again in 1000ms 21:22:57.460 [info] GET /sources/136/media/527921/force_download 21:22:57.461 [debug] QUERY OK source="settings" db=0.3ms idle=1000.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:57.461 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=496.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:57.462 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:22:57.464 [error] #PID<0.30220.0> running PinchflatWeb.Endpoint (connection #PID<0.30213.0>, stream id 3) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527921/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/136/media/527921/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527921/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30220.0>, params: %{}, path_info: ["sources", "136", "media", "527921", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527921/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTOo166d9bDsAAfwh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527921/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/136/media/527921/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527921/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30220.0>, params: %{}, path_info: ["sources", "136", "media", "527921", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:22:58.130 [debug] Current batch of media processed. Will check again in 1000ms 21:22:59.131 [debug] Current batch of media processed. Will check again in 1000ms 21:23:00.133 [debug] Current batch of media processed. Will check again in 1000ms 21:23:00.777 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:23:01.134 [debug] Current batch of media processed. Will check again in 1000ms 21:23:01.525 [info] GET /sources/135/media/527902/force_download 21:23:01.527 [debug] QUERY OK source="settings" db=0.6ms idle=998.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:01.532 [debug] QUERY OK source="settings" db=3.4ms queue=0.3ms idle=1001.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:01.533 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:01.534 [info] GET /sources/103/media/541672/force_download 21:23:01.535 [error] #PID<0.30223.0> running PinchflatWeb.Endpoint (connection #PID<0.30213.0>, stream id 4) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527902/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/135/media/527902/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527902/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30223.0>, params: %{}, path_info: ["sources", "135", "media", "527902", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527902/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTdyFfOtRvIIAAfxh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527902/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/527902/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527902/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 63441}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30223.0>, params: %{}, path_info: ["sources", "135", "media", "527902", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:01.540 [debug] QUERY OK source="settings" db=1.9ms queue=1.6ms idle=759.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:01.541 [debug] QUERY OK source="settings" db=0.3ms idle=430.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:01.541 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:01.542 [error] #PID<0.30225.0> running PinchflatWeb.Endpoint (connection #PID<0.30224.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/103/media/541672/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/103/media/541672/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/541672/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30225.0>, params: %{}, path_info: ["sources", "103", "media", "541672", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/103/media/541672/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTd0KBAfD4ugAAfyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/541672/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/103/media/541672/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/541672/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30225.0>, params: %{}, path_info: ["sources", "103", "media", "541672", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:02.030 [info] GET /sources/137/media/531124/force_download 21:23:02.032 [debug] QUERY OK source="settings" db=1.9ms idle=912.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:02.035 [debug] QUERY OK source="settings" db=0.5ms queue=0.9ms idle=507.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:02.036 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:02.044 [error] #PID<0.30226.0> running PinchflatWeb.Endpoint (connection #PID<0.30224.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/137/media/531124/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/137/media/531124/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/137/media/531124/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30226.0>, params: %{}, path_info: ["sources", "137", "media", "531124", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/137/media/531124/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTfqYKt_OOTwAAY5j"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/137/media/531124/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/137/media/531124/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/137/media/531124/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30226.0>, params: %{}, path_info: ["sources", "137", "media", "531124", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:02.135 [debug] Current batch of media processed. Will check again in 1000ms 21:23:02.534 [info] GET /sources/136/media/527915/force_download 21:23:02.535 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=993.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:02.536 [debug] QUERY OK source="settings" db=0.3ms idle=503.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:02.536 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:02.544 [error] #PID<0.30227.0> running PinchflatWeb.Endpoint (connection #PID<0.30224.0>, stream id 3) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527915/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/136/media/527915/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527915/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30227.0>, params: %{}, path_info: ["sources", "136", "media", "527915", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527915/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlThiqQgwVvTcAAY6D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527915/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/136/media/527915/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527915/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30227.0>, params: %{}, path_info: ["sources", "136", "media", "527915", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:03.034 [info] GET /sources/136/media/527924/force_download 21:23:03.035 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=998.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:03.035 [debug] QUERY OK source="settings" db=0.4ms idle=923.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:03.035 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:03.036 [error] #PID<0.30228.0> running PinchflatWeb.Endpoint (connection #PID<0.30224.0>, stream id 4) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527924/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/136/media/527924/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527924/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30228.0>, params: %{}, path_info: ["sources", "136", "media", "527924", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527924/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTjZvPtK7OE0AAY6j"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527924/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/136/media/527924/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527924/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30228.0>, params: %{}, path_info: ["sources", "136", "media", "527924", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:03.136 [debug] Current batch of media processed. Will check again in 1000ms 21:23:03.540 [info] GET /sources/136/media/527917/force_download 21:23:03.541 [debug] QUERY OK source="settings" db=0.5ms idle=1004.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:03.542 [debug] QUERY OK source="settings" db=0.2ms idle=506.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:03.542 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:03.542 [error] #PID<0.30229.0> running PinchflatWeb.Endpoint (connection #PID<0.30224.0>, stream id 5) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/136/media/527917/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/136/media/527917/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527917/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30229.0>, params: %{}, path_info: ["sources", "136", "media", "527917", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/136/media/527917/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlTlScYo-dPf4AAY7D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527917/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/136/media/527917/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30224.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/136/media/527917/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 35793}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30229.0>, params: %{}, path_info: ["sources", "136", "media", "527917", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:04.138 [debug] Current batch of media processed. Will check again in 1000ms 21:23:05.141 [debug] Current batch of media processed. Will check again in 1000ms 21:23:06.142 [debug] Current batch of media processed. Will check again in 1000ms 21:23:07.144 [debug] Current batch of media processed. Will check again in 1000ms 21:23:08.145 [debug] Current batch of media processed. Will check again in 1000ms 21:23:09.146 [debug] Current batch of media processed. Will check again in 1000ms 21:23:10.147 [debug] Current batch of media processed. Will check again in 1000ms 21:23:11.148 [debug] Current batch of media processed. Will check again in 1000ms 21:23:12.150 [debug] Current batch of media processed. Will check again in 1000ms 21:23:13.152 [debug] Current batch of media processed. Will check again in 1000ms 21:23:14.154 [debug] Current batch of media processed. Will check again in 1000ms 21:23:15.155 [debug] Current batch of media processed. Will check again in 1000ms 21:23:16.156 [debug] Current batch of media processed. Will check again in 1000ms 21:23:17.157 [debug] Current batch of media processed. Will check again in 1000ms 21:23:18.158 [debug] Current batch of media processed. Will check again in 1000ms 21:23:19.159 [debug] Current batch of media processed. Will check again in 1000ms 21:23:20.160 [debug] Current batch of media processed. Will check again in 1000ms 21:23:21.161 [debug] Current batch of media processed. Will check again in 1000ms 21:23:22.162 [debug] Current batch of media processed. Will check again in 1000ms 21:23:23.164 [debug] Current batch of media processed. Will check again in 1000ms 21:23:24.165 [debug] Current batch of media processed. Will check again in 1000ms 21:23:25.166 [debug] Current batch of media processed. Will check again in 1000ms 21:23:26.167 [debug] Current batch of media processed. Will check again in 1000ms 21:23:26.364 [info] {"source":"oban","duration":998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:27.081 [info] GET /sources/117/media/535217/force_download 21:23:27.082 [info] GET /sources/107/media/535920/force_download 21:23:27.083 [debug] QUERY OK source="settings" db=0.9ms idle=1554.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:27.084 [debug] QUERY OK source="settings" db=0.9ms idle=1555.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:27.084 [debug] QUERY OK source="settings" db=0.9ms idle=886.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:27.084 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:27.085 [debug] QUERY OK source="settings" db=1.6ms 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 [] 21:23:27.086 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:27.087 [error] #PID<0.30233.0> running PinchflatWeb.Endpoint (connection #PID<0.30232.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/117/media/535217/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/117/media/535217/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30232.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/117/media/535217/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 62363}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30233.0>, params: %{}, path_info: ["sources", "117", "media", "535217", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/117/media/535217/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlU8_E9LMwBEkAAfyh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30232.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/117/media/535217/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 62363}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/117/media/535217/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30232.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/117/media/535217/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 62363}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30233.0>, params: %{}, path_info: ["sources", "117", "media", "535217", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:27.088 [error] #PID<0.30234.0> running PinchflatWeb.Endpoint (connection #PID<0.30231.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/107/media/535920/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/107/media/535920/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/107/media/535920/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30234.0>, params: %{}, path_info: ["sources", "107", "media", "535920", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/107/media/535920/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlU8_UASTEbDsAAY7j"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/107/media/535920/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/107/media/535920/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/107/media/535920/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30234.0>, params: %{}, path_info: ["sources", "107", "media", "535920", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:27.168 [debug] Current batch of media processed. Will check again in 1000ms 21:23:28.169 [debug] Current batch of media processed. Will check again in 1000ms 21:23:29.170 [debug] Current batch of media processed. Will check again in 1000ms 21:23:30.171 [debug] Current batch of media processed. Will check again in 1000ms 21:23:31.172 [debug] Current batch of media processed. Will check again in 1000ms 21:23:31.186 [info] GET /sources/135/media/527901/force_download 21:23:31.187 [debug] QUERY OK source="settings" db=0.7ms idle=979.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:31.188 [debug] QUERY OK source="settings" db=0.4ms idle=974.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:31.188 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:31.188 [error] #PID<0.30237.0> running PinchflatWeb.Endpoint (connection #PID<0.30231.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527901/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/135/media/527901/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527901/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30237.0>, params: %{}, path_info: ["sources", "135", "media", "527901", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527901/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlVMRtYljfMaMAAY8D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527901/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/527901/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527901/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30237.0>, params: %{}, path_info: ["sources", "135", "media", "527901", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:32.178 [debug] Current batch of media processed. Will check again in 1000ms 21:23:33.179 [debug] Current batch of media processed. Will check again in 1000ms 21:23:34.180 [debug] Current batch of media processed. Will check again in 1000ms 21:23:35.181 [debug] Current batch of media processed. Will check again in 1000ms 21:23:36.062 [info] GET /sources/135/media/527909/force_download 21:23:36.063 [debug] QUERY OK source="settings" db=0.3ms idle=1535.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:36.065 [debug] QUERY OK source="settings" db=0.6ms queue=0.2ms idle=1536.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:36.065 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:36.066 [error] #PID<0.30238.0> running PinchflatWeb.Endpoint (connection #PID<0.30231.0>, stream id 3) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527909/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/135/media/527909/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527909/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30238.0>, params: %{}, path_info: ["sources", "135", "media", "527909", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527909/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlVecYDQ5gWaEAAY8j"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527909/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/527909/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527909/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30238.0>, params: %{}, path_info: ["sources", "135", "media", "527909", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:36.182 [debug] Current batch of media processed. Will check again in 1000ms 21:23:37.183 [debug] Current batch of media processed. Will check again in 1000ms 21:23:38.184 [debug] Current batch of media processed. Will check again in 1000ms 21:23:39.185 [debug] Current batch of media processed. Will check again in 1000ms 21:23:40.186 [debug] Current batch of media processed. Will check again in 1000ms 21:23:41.067 [info] GET /sources/135/media/544547/force_download 21:23:41.068 [debug] QUERY OK source="settings" db=0.6ms idle=1540.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:41.069 [debug] QUERY OK source="settings" db=0.8ms idle=1541.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:41.069 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:41.070 [error] #PID<0.30240.0> running PinchflatWeb.Endpoint (connection #PID<0.30231.0>, stream id 4) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/544547/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/135/media/544547/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/544547/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30240.0>, params: %{}, path_info: ["sources", "135", "media", "544547", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/544547/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlVxFhmvrOTuYAAY9D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/544547/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/544547/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/544547/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 57332}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30240.0>, params: %{}, path_info: ["sources", "135", "media", "544547", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:41.187 [debug] Current batch of media processed. Will check again in 1000ms 21:23:42.191 [debug] Current batch of media processed. Will check again in 1000ms 21:23:43.192 [debug] Current batch of media processed. Will check again in 1000ms 21:23:44.194 [debug] Current batch of media processed. Will check again in 1000ms 21:23:45.200 [debug] Current batch of media processed. Will check again in 1000ms 21:23:46.202 [debug] Current batch of media processed. Will check again in 1000ms 21:23:47.203 [debug] Current batch of media processed. Will check again in 1000ms 21:23:48.204 [debug] Current batch of media processed. Will check again in 1000ms 21:23:49.205 [debug] Current batch of media processed. Will check again in 1000ms 21:23:50.206 [debug] Current batch of media processed. Will check again in 1000ms 21:23:50.480 [info] GET /sources/34/media/536526/force_download 21:23:50.482 [debug] QUERY OK source="settings" db=1.6ms idle=1190.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:50.483 [debug] QUERY OK source="settings" db=0.3ms idle=1185.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:50.483 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:50.484 [error] #PID<0.30242.0> running PinchflatWeb.Endpoint (connection #PID<0.30241.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/34/media/536526/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/34/media/536526/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/536526/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30242.0>, params: %{}, path_info: ["sources", "34", "media", "536526", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/34/media/536526/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlWUJ5DmdY5YMAAfzh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/536526/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/34/media/536526/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/536526/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30242.0>, params: %{}, path_info: ["sources", "34", "media", "536526", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], (truncated) 21:23:51.207 [debug] Current batch of media processed. Will check again in 1000ms 21:23:51.701 [info] GET /sources/135/media/527907/force_download 21:23:51.704 [debug] QUERY OK source="settings" db=2.4ms queue=0.1ms idle=400.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:51.706 [debug] QUERY OK source="settings" db=0.8ms idle=396.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:51.706 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:51.706 [error] #PID<0.30243.0> running PinchflatWeb.Endpoint (connection #PID<0.30241.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527907/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/135/media/527907/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527907/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30243.0>, params: %{}, path_info: ["sources", "135", "media", "527907", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527907/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlWYs-oCKMhOEAAf0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527907/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/527907/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527907/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30243.0>, params: %{}, path_info: ["sources", "135", "media", "527907", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:52.208 [debug] Current batch of media processed. Will check again in 1000ms 21:23:53.209 [debug] Current batch of media processed. Will check again in 1000ms 21:23:54.210 [debug] Current batch of media processed. Will check again in 1000ms 21:23:55.212 [debug] Current batch of media processed. Will check again in 1000ms 21:23:56.215 [debug] Current batch of media processed. Will check again in 1000ms 21:23:56.366 [info] {"source":"oban","duration":825,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:56.704 [info] GET /sources/138/media/531286/force_download 21:23:56.705 [debug] QUERY OK source="settings" db=0.7ms idle=1164.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:56.706 [debug] QUERY OK source="settings" db=0.2ms idle=1165.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:56.706 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:23:56.706 [error] #PID<0.30244.0> running PinchflatWeb.Endpoint (connection #PID<0.30241.0>, stream id 3) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/138/media/531286/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/138/media/531286/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/138/media/531286/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30244.0>, params: %{}, path_info: ["sources", "138", "media", "531286", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/138/media/531286/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlWrVrLIj_740AAf0h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/138/media/531286/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/138/media/531286/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/138/media/531286/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 8617}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30244.0>, params: %{}, path_info: ["sources", "138", "media", "531286", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:23:57.216 [debug] Current batch of media processed. Will check again in 1000ms 21:23:58.217 [debug] Current batch of media processed. Will check again in 1000ms 21:23:59.218 [debug] Current batch of media processed. Will check again in 1000ms 21:24:00.220 [debug] Current batch of media processed. Will check again in 1000ms 21:24:00.779 [info] {"source":"oban","duration":496,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:24:01.221 [debug] Current batch of media processed. Will check again in 1000ms 21:24:02.223 [debug] Current batch of media processed. Will check again in 1000ms 21:24:02.669 [info] GET /media/bc7c2d63-405a-4566-a85c-d10b48ebdad4/stream 21:24:02.669 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "bc7c2d63-405a-4566-a85c-d10b48ebdad4"} Pipelines: [:maybe_basic_auth] 21:24:02.695 [debug] QUERY OK source="media_items" db=25.1ms decode=0.1ms queue=0.1ms idle=336.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["bc7c2d63-405a-4566-a85c-d10b48ebdad4"] 21:24:02.706 [debug] Invalid range request for media item: bc7c2d63-405a-4566-a85c-d10b48ebdad4 - serving full file 21:24:02.706 [info] Sent 200 in 37ms 21:24:03.224 [debug] Current batch of media processed. Will check again in 1000ms 21:24:04.225 [debug] Current batch of media processed. Will check again in 1000ms 21:24:05.226 [debug] Current batch of media processed. Will check again in 1000ms 21:24:06.227 [debug] Current batch of media processed. Will check again in 1000ms 21:24:07.228 [debug] Current batch of media processed. Will check again in 1000ms 21:24:08.232 [debug] Current batch of media processed. Will check again in 1000ms 21:24:09.234 [debug] Current batch of media processed. Will check again in 1000ms 21:24:10.234 [debug] Current batch of media processed. Will check again in 1000ms 21:24:11.235 [debug] Current batch of media processed. Will check again in 1000ms 21:24:12.237 [debug] Current batch of media processed. Will check again in 1000ms 21:24:13.052 [info] GET /media/ab8e30ca-9470-4202-be01-165122114bd1/stream 21:24:13.053 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "ab8e30ca-9470-4202-be01-165122114bd1"} Pipelines: [:maybe_basic_auth] 21:24:13.077 [debug] QUERY OK source="media_items" db=22.7ms idle=660.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["ab8e30ca-9470-4202-be01-165122114bd1"] 21:24:13.085 [debug] Invalid range request for media item: ab8e30ca-9470-4202-be01-165122114bd1 - serving full file 21:24:13.085 [info] Sent 200 in 33ms 21:24:13.238 [debug] Current batch of media processed. Will check again in 1000ms 21:24:14.239 [debug] Current batch of media processed. Will check again in 1000ms 21:24:15.240 [debug] Current batch of media processed. Will check again in 1000ms 21:24:16.241 [debug] Current batch of media processed. Will check again in 1000ms 21:24:17.242 [debug] Current batch of media processed. Will check again in 1000ms 21:24:18.245 [debug] Current batch of media processed. Will check again in 1000ms 21:24:19.246 [debug] Current batch of media processed. Will check again in 1000ms 21:24:20.247 [debug] Current batch of media processed. Will check again in 1000ms 21:24:21.260 [debug] Current batch of media processed. Will check again in 1000ms 21:24:22.261 [debug] Current batch of media processed. Will check again in 1000ms 21:24:23.262 [debug] Current batch of media processed. Will check again in 1000ms 21:24:24.264 [debug] Current batch of media processed. Will check again in 1000ms 21:24:25.270 [debug] Current batch of media processed. Will check again in 1000ms 21:24:26.293 [debug] Current batch of media processed. Will check again in 1000ms 21:24:26.368 [info] {"source":"oban","duration":1083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:27.307 [debug] Current batch of media processed. Will check again in 1000ms 21:24:28.308 [debug] Current batch of media processed. Will check again in 1000ms 21:24:28.785 [info] GET /sources/36a3eae9-fe33-488a-8004-edb40b4a7f16/feed.xml 21:24:28.786 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "36a3eae9-fe33-488a-8004-edb40b4a7f16"} Pipelines: [:maybe_basic_auth] 21:24:28.791 [debug] QUERY OK source="sources" db=1.4ms queue=1.3ms idle=1246.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["36a3eae9-fe33-488a-8004-edb40b4a7f16"] 21:24:28.820 [debug] QUERY OK source="media_items" db=26.8ms queue=0.1ms idle=356.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [138, 2000] 21:24:29.069 [debug] QUERY OK source="source_metadata" db=18.9ms queue=0.1ms idle=607.5ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [138] 21:24:29.074 [debug] QUERY OK source="media_metadata" db=4.5ms queue=0.1ms idle=528.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [547442] 21:24:29.093 [info] Sent 200 in 307ms 21:24:29.328 [debug] Current batch of media processed. Will check again in 1000ms 21:24:30.329 [debug] Current batch of media processed. Will check again in 1000ms 21:24:31.331 [debug] Current batch of media processed. Will check again in 1000ms 21:24:32.334 [debug] Current batch of media processed. Will check again in 1000ms 21:24:33.209 [info] GET /media/89e8b0a8-a569-4936-bbcf-2053ede07c34/stream 21:24:33.209 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "89e8b0a8-a569-4936-bbcf-2053ede07c34"} Pipelines: [:maybe_basic_auth] 21:24:33.226 [debug] QUERY OK source="media_items" db=16.1ms idle=749.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["89e8b0a8-a569-4936-bbcf-2053ede07c34"] 21:24:33.226 [debug] Invalid range request for media item: 89e8b0a8-a569-4936-bbcf-2053ede07c34 - serving full file 21:24:33.226 [info] Sent 200 in 17ms 21:24:33.335 [debug] Current batch of media processed. Will check again in 1000ms 21:24:34.336 [debug] Current batch of media processed. Will check again in 1000ms 21:24:35.337 [debug] Current batch of media processed. Will check again in 1000ms 21:24:36.338 [debug] Current batch of media processed. Will check again in 1000ms 21:24:37.339 [debug] Current batch of media processed. Will check again in 1000ms 21:24:38.341 [debug] Current batch of media processed. Will check again in 1000ms 21:24:39.342 [debug] Current batch of media processed. Will check again in 1000ms 21:24:40.343 [debug] Current batch of media processed. Will check again in 1000ms 21:24:41.344 [debug] Current batch of media processed. Will check again in 1000ms 21:24:42.346 [debug] Current batch of media processed. Will check again in 1000ms 21:24:43.347 [debug] Current batch of media processed. Will check again in 1000ms 21:24:44.348 [debug] Current batch of media processed. Will check again in 1000ms 21:24:44.779 [info] GET /media/c4c3db04-891c-4b1a-8a0c-354b2841780a/stream 21:24:44.780 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c4c3db04-891c-4b1a-8a0c-354b2841780a"} Pipelines: [:maybe_basic_auth] 21:24:44.808 [debug] QUERY OK source="media_items" db=26.7ms queue=1.3ms idle=264.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["c4c3db04-891c-4b1a-8a0c-354b2841780a"] 21:24:44.815 [debug] Invalid range request for media item: c4c3db04-891c-4b1a-8a0c-354b2841780a - serving full file 21:24:44.816 [info] Sent 200 in 36ms 21:24:45.349 [debug] Current batch of media processed. Will check again in 1000ms 21:24:46.350 [debug] Current batch of media processed. Will check again in 1000ms 21:24:47.360 [debug] Current batch of media processed. Will check again in 1000ms 21:24:48.361 [debug] Current batch of media processed. Will check again in 1000ms 21:24:49.362 [debug] Current batch of media processed. Will check again in 1000ms 21:24:50.363 [debug] Current batch of media processed. Will check again in 1000ms 21:24:51.364 [debug] Current batch of media processed. Will check again in 1000ms 21:24:52.365 [debug] Current batch of media processed. Will check again in 1000ms 21:24:53.366 [debug] Current batch of media processed. Will check again in 1000ms 21:24:54.367 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/38/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Комплексное число и его геометрическая интерпретация\n3:55 - Сложение комплексных чисел\n7:06 - Свойства сложения комплексных чисел\n9:57 - Умножение комплексных чисел\n13:42 - Свойства умножения комплексных чисел\n18:33 - Ассоциативность умножения\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "duration" => 1392, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112800 - 38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", "id" => "ZI9w3HAmStE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZI9w3HAmStE", "playlist_index" => 38, "timestamp" => 1669647631, "title" => "38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики", "upload_date" => "20221128"} 21:24:54.368 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1808.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:24:54.370 [debug] QUERY OK source="sources" db=0.8ms idle=1809.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:24:54.371 [debug] QUERY OK source="media_items" db=1.0ms idle=1807.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-28 15:00:31Z], 116] 21:24:54.375 [debug] QUERY OK source="media_items" db=2.9ms idle=815.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/38/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Комплексное число и его геометрическая интерпретация\n3:55 - Сложение комплексных чисел\n7:06 - Свойства сложения комплексных чисел\n9:57 - Умножение комплексных чисел\n13:42 - Свойства умножения комплексных чисел\n18:33 - Ассоциативность умножения\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики", "9bc8ae49-27cf-473a-af88-bdf0f9f029af", 1392, false, "ZI9w3HAmStE", "https://www.youtube.com/watch?v=ZI9w3HAmStE", 38, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112800 - 38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2022-11-28 15:00:31Z], ~U[2026-06-03 18:24:54Z], ~U[2026-06-03 18:24:54Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/38/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Комплексное число и его геометрическая интерпретация\n3:55 - Сложение комплексных чисел\n7:06 - Свойства сложения комплексных чисел\n9:57 - Умножение комплексных чисел\n13:42 - Свойства умножения комплексных чисел\n18:33 - Ассоциативность умножения\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики", 1392, false, "ZI9w3HAmStE", "https://www.youtube.com/watch?v=ZI9w3HAmStE", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e112800 - 38. Сложение, вычитание и умножение комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2022-11-28 15:00:31Z]] 21:24:54.377 [debug] QUERY OK source="sources" db=1.5ms idle=811.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:24:54.378 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:24:54.379 [debug] QUERY OK source="media_items" db=0.4ms idle=8.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [165282] 21:24:54.379 [debug] Current batch of media processed. Will check again in 1000ms 21:24:55.380 [debug] Current batch of media processed. Will check again in 1000ms 21:24:56.370 [info] {"source":"oban","duration":945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:56.381 [debug] Current batch of media processed. Will check again in 1000ms 21:24:57.382 [debug] Current batch of media processed. Will check again in 1000ms 21:24:57.880 [info] GET /sources/136/media/527913 21:24:57.880 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527913", "prevent_download" => "true", "source_id" => "136"} Pipelines: [:browser] 21:24:57.881 [debug] QUERY OK source="media_items" db=0.5ms idle=321.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" = ?) [527913] 21:24:57.882 [debug] QUERY OK source="tasks" db=0.8ms idle=322.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [527913] 21:24:57.883 [debug] QUERY OK source="sources" db=1.2ms idle=322.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [136] 21:24:57.884 [debug] QUERY OK source="settings" db=0.6ms idle=317.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:57.885 [debug] QUERY OK source="settings" db=0.2ms idle=312.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:57.885 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:57.887 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:24:57.889 [info] Sent 200 in 9ms 21:24:58.386 [debug] Current batch of media processed. Will check again in 1000ms 21:24:59.387 [debug] Current batch of media processed. Will check again in 1000ms 21:25:00.390 [debug] Current batch of media processed. Will check again in 1000ms 21:25:00.780 [info] {"source":"oban","duration":270,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:25:01.391 [debug] Current batch of media processed. Will check again in 1000ms 21:25:02.392 [debug] Current batch of media processed. Will check again in 1000ms 21:25:02.416 [info] GET /sources/136/media/527904 21:25:02.416 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527904", "prevent_download" => "true", "source_id" => "136"} Pipelines: [:browser] 21:25:02.417 [debug] QUERY OK source="media_items" db=0.4ms idle=1636.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" = ?) [527904] 21:25:02.418 [debug] QUERY OK source="tasks" db=0.3ms idle=858.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" [527904] 21:25:02.418 [debug] QUERY OK source="sources" db=0.6ms idle=858.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [136] 21:25:02.419 [debug] QUERY OK source="settings" db=0.2ms idle=825.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:02.421 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=825.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:02.426 [debug] QUERY OK source="settings" db=4.3ms queue=0.1ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:02.428 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:02.432 [info] Sent 200 in 16ms 21:25:03.393 [debug] Current batch of media processed. Will check again in 1000ms 21:25:04.395 [debug] Current batch of media processed. Will check again in 1000ms 21:25:05.395 [debug] Current batch of media processed. Will check again in 1000ms 21:25:06.396 [debug] Current batch of media processed. Will check again in 1000ms 21:25:07.397 [debug] Current batch of media processed. Will check again in 1000ms 21:25:07.413 [info] GET /sources/103/media/537680 21:25:07.414 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "537680", "prevent_download" => "true", "source_id" => "103"} Pipelines: [:browser] 21:25:07.417 [debug] QUERY OK source="media_items" db=2.5ms idle=1855.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" = ?) [537680] 21:25:07.419 [debug] QUERY OK source="tasks" db=1.3ms queue=0.1ms idle=1798.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" [537680] 21:25:07.420 [debug] QUERY OK source="sources" db=1.3ms queue=0.2ms idle=1792.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [103] 21:25:07.423 [debug] QUERY OK source="settings" db=0.6ms idle=800.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:07.424 [debug] QUERY OK source="settings" db=0.5ms idle=795.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:07.425 [debug] QUERY OK source="settings" db=0.6ms 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 [] 21:25:07.428 [debug] QUERY OK source="media_profiles" db=2.1ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:07.430 [info] Sent 200 in 16ms 21:25:08.398 [debug] Current batch of media processed. Will check again in 1000ms 21:25:09.400 [debug] Current batch of media processed. Will check again in 1000ms 21:25:10.400 [debug] Current batch of media processed. Will check again in 1000ms 21:25:11.401 [debug] Current batch of media processed. Will check again in 1000ms 21:25:12.402 [debug] Current batch of media processed. Will check again in 1000ms 21:25:12.422 [info] GET /media/8ac570ce-9471-4823-a9e1-d6d4a97671c9/stream 21:25:12.423 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "8ac570ce-9471-4823-a9e1-d6d4a97671c9"} Pipelines: [:maybe_basic_auth] 21:25:12.424 [debug] QUERY OK source="media_items" db=0.4ms idle=1863.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["8ac570ce-9471-4823-a9e1-d6d4a97671c9"] 21:25:12.428 [debug] Invalid range request for media item: 8ac570ce-9471-4823-a9e1-d6d4a97671c9 - serving full file 21:25:12.429 [info] Sent 200 in 6ms 21:25:13.404 [debug] Current batch of media processed. Will check again in 1000ms 21:25:14.404 [debug] Current batch of media processed. Will check again in 1000ms 21:25:15.405 [debug] Current batch of media processed. Will check again in 1000ms 21:25:16.406 [debug] Current batch of media processed. Will check again in 1000ms 21:25:17.407 [debug] Current batch of media processed. Will check again in 1000ms 21:25:18.408 [debug] Current batch of media processed. Will check again in 1000ms 21:25:19.410 [debug] Current batch of media processed. Will check again in 1000ms 21:25:20.410 [debug] Current batch of media processed. Will check again in 1000ms 21:25:21.411 [debug] Current batch of media processed. Will check again in 1000ms 21:25:22.412 [debug] Current batch of media processed. Will check again in 1000ms 21:25:23.413 [debug] Current batch of media processed. Will check again in 1000ms 21:25:24.414 [debug] Current batch of media processed. Will check again in 1000ms 21:25:25.415 [debug] Current batch of media processed. Will check again in 1000ms 21:25:26.373 [info] {"source":"oban","duration":2350,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:26.416 [debug] Current batch of media processed. Will check again in 1000ms 21:25:27.417 [debug] Current batch of media processed. Will check again in 1000ms 21:25:28.418 [debug] Current batch of media processed. Will check again in 1000ms 21:25:29.419 [debug] Current batch of media processed. Will check again in 1000ms 21:25:30.420 [debug] Current batch of media processed. Will check again in 1000ms 21:25:31.422 [debug] Current batch of media processed. Will check again in 1000ms 21:25:32.424 [debug] Current batch of media processed. Will check again in 1000ms 21:25:32.970 [info] GET /sources/135/media/527902 21:25:32.971 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527902", "prevent_download" => "true", "source_id" => "135"} Pipelines: [:browser] 21:25:32.972 [debug] QUERY OK source="media_items" db=0.6ms queue=0.4ms idle=1274.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" = ?) [527902] 21:25:32.974 [debug] QUERY OK source="tasks" db=0.7ms idle=412.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" [527902] 21:25:32.974 [debug] QUERY OK source="sources" db=1.1ms idle=412.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [135] 21:25:32.975 [debug] QUERY OK source="settings" db=0.4ms idle=272.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:32.975 [debug] QUERY OK source="settings" db=0.3ms idle=264.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:32.976 [debug] QUERY OK source="settings" db=0.4ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:32.978 [debug] QUERY OK source="media_profiles" db=0.6ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:32.982 [info] Sent 200 in 11ms 21:25:33.424 [debug] Current batch of media processed. Will check again in 1000ms 21:25:34.426 [debug] Current batch of media processed. Will check again in 1000ms 21:25:35.427 [debug] Current batch of media processed. Will check again in 1000ms 21:25:36.429 [debug] Current batch of media processed. Will check again in 1000ms 21:25:37.430 [debug] Current batch of media processed. Will check again in 1000ms 21:25:37.493 [info] GET /sources/103/media/544823 21:25:37.493 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "544823", "prevent_download" => "true", "source_id" => "103"} Pipelines: [:browser] 21:25:37.499 [debug] QUERY OK source="media_items" db=3.5ms queue=0.1ms idle=934.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" = ?) [544823] 21:25:37.500 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=939.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" [544823] 21:25:37.500 [debug] QUERY OK source="sources" db=0.6ms idle=939.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [103] 21:25:37.501 [debug] QUERY OK source="settings" db=0.8ms idle=786.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:37.502 [debug] QUERY OK source="settings" db=0.5ms idle=781.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:37.503 [debug] QUERY OK source="settings" db=0.4ms 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 [] 21:25:37.504 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:37.506 [info] Sent 200 in 13ms 21:25:38.431 [debug] Current batch of media processed. Will check again in 1000ms 21:25:39.432 [debug] Current batch of media processed. Will check again in 1000ms 21:25:40.433 [debug] Current batch of media processed. Will check again in 1000ms 21:25:41.434 [debug] Current batch of media processed. Will check again in 1000ms 21:25:42.436 [debug] Current batch of media processed. Will check again in 1000ms 21:25:42.502 [info] GET /sources/136/media/527915 21:25:42.502 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527915", "prevent_download" => "true", "source_id" => "136"} Pipelines: [:browser] 21:25:42.508 [debug] QUERY OK source="media_items" db=3.2ms queue=0.2ms idle=1944.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" = ?) [527915] 21:25:42.513 [debug] QUERY OK source="tasks" db=1.7ms idle=1788.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" [527915] 21:25:42.513 [debug] QUERY OK source="sources" db=1.9ms idle=1766.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [136] 21:25:42.517 [debug] QUERY OK source="settings" db=3.1ms queue=0.1ms idle=785.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:42.518 [debug] QUERY OK source="settings" db=0.5ms idle=771.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:42.519 [debug] QUERY OK source="settings" db=1.0ms 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 [] 21:25:42.523 [debug] QUERY OK source="media_profiles" db=1.1ms idle=8.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:42.525 [info] Sent 200 in 22ms 21:25:43.437 [debug] Current batch of media processed. Will check again in 1000ms 21:25:44.438 [debug] Current batch of media processed. Will check again in 1000ms 21:25:45.442 [debug] Current batch of media processed. Will check again in 1000ms 21:25:46.443 [debug] Current batch of media processed. Will check again in 1000ms 21:25:47.444 [debug] Current batch of media processed. Will check again in 1000ms 21:25:47.511 [info] GET /sources/137/media/531124 21:25:47.511 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531124", "prevent_download" => "true", "source_id" => "137"} Pipelines: [:browser] 21:25:47.512 [debug] QUERY OK source="media_items" db=0.4ms idle=1937.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" = ?) [531124] 21:25:47.513 [debug] QUERY OK source="tasks" db=0.2ms idle=1776.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" [531124] 21:25:47.514 [debug] QUERY OK source="sources" db=0.5ms idle=1770.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [137] 21:25:47.514 [debug] QUERY OK source="settings" db=0.2ms 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 [] 21:25:47.515 [debug] QUERY OK source="settings" db=0.2ms idle=769.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:47.516 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:47.517 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:47.522 [info] Sent 200 in 11ms 21:25:48.445 [debug] Current batch of media processed. Will check again in 1000ms 21:25:49.446 [debug] Current batch of media processed. Will check again in 1000ms 21:25:50.447 [debug] Current batch of media processed. Will check again in 1000ms 21:25:51.448 [debug] Current batch of media processed. Will check again in 1000ms 21:25:52.449 [debug] Current batch of media processed. Will check again in 1000ms 21:25:52.516 [info] GET /sources/103/media/541672 21:25:52.516 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "541672", "prevent_download" => "true", "source_id" => "103"} Pipelines: [:browser] 21:25:52.517 [debug] QUERY OK source="media_items" db=0.3ms idle=1942.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [541672] 21:25:52.518 [debug] QUERY OK source="tasks" db=0.3ms idle=1769.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [541672] 21:25:52.523 [debug] QUERY OK source="sources" db=5.0ms idle=1762.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [103] 21:25:52.525 [debug] QUERY OK source="settings" db=1.7ms idle=773.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:52.526 [debug] QUERY OK source="settings" db=0.5ms idle=768.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:52.527 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:52.529 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:25:52.531 [info] Sent 200 in 15ms 21:25:53.450 [debug] Current batch of media processed. Will check again in 1000ms 21:25:54.451 [debug] Current batch of media processed. Will check again in 1000ms 21:25:55.452 [debug] Current batch of media processed. Will check again in 1000ms 21:25:56.375 [info] {"source":"oban","duration":866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:56.453 [debug] Current batch of media processed. Will check again in 1000ms 21:25:57.454 [debug] Current batch of media processed. Will check again in 1000ms 21:25:58.455 [debug] Current batch of media processed. Will check again in 1000ms 21:25:59.235 [info] GET /sources/107/media/529653 21:25:59.235 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "529653", "prevent_download" => "true", "source_id" => "107"} Pipelines: [:browser] 21:25:59.236 [debug] QUERY OK source="media_items" db=0.4ms idle=1661.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" = ?) [529653] 21:25:59.237 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=1461.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" [529653] 21:25:59.237 [debug] QUERY OK source="sources" db=0.7ms idle=1454.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [107] 21:25:59.239 [debug] QUERY OK source="settings" db=0.9ms idle=460.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:59.239 [debug] QUERY OK source="settings" db=0.3ms idle=454.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:59.240 [debug] QUERY OK source="settings" db=0.3ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:59.242 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:25:59.247 [info] Sent 200 in 12ms 21:25:59.456 [debug] Current batch of media processed. Will check again in 1000ms 21:26:00.457 [debug] Current batch of media processed. Will check again in 1000ms 21:26:00.781 [info] {"source":"oban","duration":256,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:26:01.458 [debug] Current batch of media processed. Will check again in 1000ms 21:26:02.459 [debug] Current batch of media processed. Will check again in 1000ms 21:26:03.460 [debug] Current batch of media processed. Will check again in 1000ms 21:26:04.462 [debug] Current batch of media processed. Will check again in 1000ms 21:26:05.463 [debug] Current batch of media processed. Will check again in 1000ms 21:26:05.962 [info] GET /media/737baf84-3a07-4c62-a112-42dd176f536b/stream 21:26:05.962 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "737baf84-3a07-4c62-a112-42dd176f536b"} Pipelines: [:maybe_basic_auth] 21:26:05.985 [debug] QUERY OK source="media_items" db=23.0ms idle=1386.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["737baf84-3a07-4c62-a112-42dd176f536b"] 21:26:05.987 [debug] Invalid range request for media item: 737baf84-3a07-4c62-a112-42dd176f536b - serving full file 21:26:05.987 [info] Sent 200 in 25ms 21:26:06.464 [debug] Current batch of media processed. Will check again in 1000ms 21:26:07.466 [debug] Current batch of media processed. Will check again in 1000ms 21:26:08.467 [debug] Current batch of media processed. Will check again in 1000ms 21:26:09.468 [debug] Current batch of media processed. Will check again in 1000ms 21:26:10.469 [debug] Current batch of media processed. Will check again in 1000ms 21:26:11.471 [debug] Current batch of media processed. Will check again in 1000ms 21:26:12.472 [debug] Current batch of media processed. Will check again in 1000ms 21:26:13.473 [debug] Current batch of media processed. Will check again in 1000ms 21:26:14.474 [debug] Current batch of media processed. Will check again in 1000ms 21:26:15.475 [debug] Current batch of media processed. Will check again in 1000ms 21:26:15.932 [info] GET /sources/34/media/530440/force_download 21:26:15.933 [debug] QUERY OK source="settings" db=0.3ms idle=1095.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:15.933 [debug] QUERY OK source="settings" db=0.2ms idle=1088.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:15.933 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:26:15.934 [error] #PID<0.30310.0> running PinchflatWeb.Endpoint (connection #PID<0.30309.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/34/media/530440/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/34/media/530440/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530440/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30310.0>, params: %{}, path_info: ["sources", "34", "media", "530440", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/34/media/530440/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWleyARDRX-S1QAAgCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530440/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/34/media/530440/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530440/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30310.0>, params: %{}, path_info: ["sources", "34", "media", "530440", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ] (truncated) 21:26:16.476 [debug] Current batch of media processed. Will check again in 1000ms 21:26:17.477 [debug] Current batch of media processed. Will check again in 1000ms 21:26:18.478 [debug] Current batch of media processed. Will check again in 1000ms 21:26:19.479 [debug] Current batch of media processed. Will check again in 1000ms 21:26:20.045 [info] GET /sources/103/media/533341/force_download 21:26:20.046 [debug] QUERY OK source="settings" db=0.3ms idle=463.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:20.046 [debug] QUERY OK source="settings" db=0.1ms idle=463.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:20.046 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:26:20.047 [error] #PID<0.30311.0> running PinchflatWeb.Endpoint (connection #PID<0.30309.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/103/media/533341/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/103/media/533341/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/533341/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30311.0>, params: %{}, path_info: ["sources", "103", "media", "533341", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/103/media/533341/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlfBU6vIc4sYwAAgCh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/533341/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/103/media/533341/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/103/media/533341/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 39770}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30311.0>, params: %{}, path_info: ["sources", "103", "media", "533341", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:26:20.481 [debug] Current batch of media processed. Will check again in 1000ms 21:26:21.481 [debug] Current batch of media processed. Will check again in 1000ms 21:26:22.482 [debug] Current batch of media processed. Will check again in 1000ms 21:26:23.490 [debug] Current batch of media processed. Will check again in 1000ms 21:26:24.491 [debug] Current batch of media processed. Will check again in 1000ms 21:26:25.492 [debug] Current batch of media processed. Will check again in 1000ms 21:26:26.378 [info] {"source":"oban","duration":2353,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:26.494 [debug] Current batch of media processed. Will check again in 1000ms 21:26:27.495 [debug] Current batch of media processed. Will check again in 1000ms 21:26:28.370 [info] GET /media/c03006e9-4fdd-42d7-ae02-ddaf1d85556b/stream 21:26:28.372 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c03006e9-4fdd-42d7-ae02-ddaf1d85556b"} Pipelines: [:maybe_basic_auth] 21:26:28.374 [debug] QUERY OK source="media_items" db=1.7ms idle=788.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["c03006e9-4fdd-42d7-ae02-ddaf1d85556b"] 21:26:28.378 [debug] Invalid range request for media item: c03006e9-4fdd-42d7-ae02-ddaf1d85556b - serving full file 21:26:28.378 [info] Sent 200 in 7ms 21:26:28.496 [debug] Current batch of media processed. Will check again in 1000ms 21:26:29.497 [debug] Current batch of media processed. Will check again in 1000ms 21:26:30.498 [debug] Current batch of media processed. Will check again in 1000ms 21:26:31.499 [debug] Current batch of media processed. Will check again in 1000ms 21:26:32.500 [debug] Current batch of media processed. Will check again in 1000ms 21:26:33.146 [info] GET /media/6d7f5c10-aec7-40c5-b64d-f2014009b232/stream 21:26:33.146 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "6d7f5c10-aec7-40c5-b64d-f2014009b232"} Pipelines: [:maybe_basic_auth] 21:26:33.177 [debug] QUERY OK source="media_items" db=30.2ms queue=0.1ms idle=1562.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["6d7f5c10-aec7-40c5-b64d-f2014009b232"] 21:26:33.180 [debug] Invalid range request for media item: 6d7f5c10-aec7-40c5-b64d-f2014009b232 - serving full file 21:26:33.180 [info] Sent 200 in 33ms 21:26:33.501 [debug] Current batch of media processed. Will check again in 1000ms 21:26:34.502 [debug] Current batch of media processed. Will check again in 1000ms 21:26:35.503 [debug] Current batch of media processed. Will check again in 1000ms 21:26:36.504 [debug] Current batch of media processed. Will check again in 1000ms 21:26:37.505 [debug] Current batch of media processed. Will check again in 1000ms 21:26:38.506 [debug] Current batch of media processed. Will check again in 1000ms 21:26:39.507 [debug] Current batch of media processed. Will check again in 1000ms 21:26:40.508 [debug] Current batch of media processed. Will check again in 1000ms 21:26:41.510 [debug] Current batch of media processed. Will check again in 1000ms 21:26:42.512 [debug] Current batch of media processed. Will check again in 1000ms 21:26:43.515 [debug] Current batch of media processed. Will check again in 1000ms 21:26:44.516 [debug] Current batch of media processed. Will check again in 1000ms 21:26:45.517 [debug] Current batch of media processed. Will check again in 1000ms 21:26:46.518 [debug] Current batch of media processed. Will check again in 1000ms 21:26:47.519 [debug] Current batch of media processed. Will check again in 1000ms 21:26:48.520 [debug] Current batch of media processed. Will check again in 1000ms 21:26:49.096 [info] GET /sources/136/media/527906 21:26:49.097 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527906", "prevent_download" => "true", "source_id" => "136"} Pipelines: [:browser] 21:26:49.101 [debug] QUERY OK source="media_items" db=3.4ms queue=0.2ms idle=1085.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" = ?) [527906] 21:26:49.103 [debug] QUERY OK source="tasks" db=0.4ms idle=1084.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" [527906] 21:26:49.103 [debug] QUERY OK source="sources" db=0.7ms idle=497.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [136] 21:26:49.106 [debug] QUERY OK source="settings" db=2.7ms idle=90.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.107 [debug] QUERY OK source="settings" db=0.2ms idle=85.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.109 [debug] QUERY OK source="settings" db=1.8ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.111 [debug] QUERY OK source="media_profiles" db=0.8ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:26:49.113 [info] Sent 200 in 17ms 21:26:49.521 [debug] Current batch of media processed. Will check again in 1000ms 21:26:50.522 [debug] Current batch of media processed. Will check again in 1000ms 21:26:50.692 [info] GET /media/81582113-aa00-468b-9eb1-22a294fc1cfc/stream 21:26:50.692 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "81582113-aa00-468b-9eb1-22a294fc1cfc"} Pipelines: [:maybe_basic_auth] 21:26:50.718 [debug] QUERY OK source="media_items" db=25.4ms idle=676.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["81582113-aa00-468b-9eb1-22a294fc1cfc"] 21:26:50.719 [debug] Invalid range request for media item: 81582113-aa00-468b-9eb1-22a294fc1cfc - serving full file 21:26:50.719 [info] Sent 200 in 27ms 21:26:51.523 [debug] Current batch of media processed. Will check again in 1000ms 21:26:52.525 [debug] Current batch of media processed. Will check again in 1000ms 21:26:53.526 [debug] Current batch of media processed. Will check again in 1000ms 21:26:54.533 [debug] Current batch of media processed. Will check again in 1000ms 21:26:55.534 [debug] Current batch of media processed. Will check again in 1000ms 21:26:56.381 [info] {"source":"oban","duration":1255,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:56.536 [debug] Current batch of media processed. Will check again in 1000ms 21:26:57.537 [debug] Current batch of media processed. Will check again in 1000ms 21:26:58.543 [debug] Current batch of media processed. Will check again in 1000ms 21:26:59.544 [debug] Current batch of media processed. Will check again in 1000ms 21:27:00.545 [debug] Current batch of media processed. Will check again in 1000ms 21:27:00.785 [info] {"source":"oban","duration":2730,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:27:01.548 [debug] Current batch of media processed. Will check again in 1000ms 21:27:02.550 [debug] Current batch of media processed. Will check again in 1000ms 21:27:03.551 [debug] Current batch of media processed. Will check again in 1000ms 21:27:04.552 [debug] Current batch of media processed. Will check again in 1000ms 21:27:05.553 [debug] Current batch of media processed. Will check again in 1000ms 21:27:06.554 [debug] Current batch of media processed. Will check again in 1000ms 21:27:07.555 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/39/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Сопряжение и его геометрическая интерпретация\n2:18 - Свойства сопряжения\n6:44 - Норма и модуль комплексного числа\n11:29 - Свойства модуля\n16:08 - Модуль произведения\n21:10 - Обратное к комплексному числу\n24:06 - Деление комплексных чисел \n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "duration" => 1878, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e113000 - 39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики.mp4", "id" => "Kemrf38C-R8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Kemrf38C-R8", "playlist_index" => 39, "timestamp" => 1669820417, "title" => "39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики", "upload_date" => "20221130"} 21:27:07.557 [debug] QUERY OK source="sources" db=0.9ms idle=947.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:27:07.558 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=949.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:27:07.559 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=950.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-30 15:00:17Z], 116] 21:27:07.568 [debug] QUERY OK source="media_items" db=7.0ms queue=0.1ms idle=467.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/39/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Сопряжение и его геометрическая интерпретация\n2:18 - Свойства сопряжения\n6:44 - Норма и модуль комплексного числа\n11:29 - Свойства модуля\n16:08 - Модуль произведения\n21:10 - Обратное к комплексному числу\n24:06 - Деление комплексных чисел \n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики", "306be061-6ae2-4a0e-a166-a9f6add42df0", 1878, false, "Kemrf38C-R8", "https://www.youtube.com/watch?v=Kemrf38C-R8", 39, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e113000 - 39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2022-11-30 15:00:17Z], ~U[2026-06-03 18:27:07Z], ~U[2026-06-03 18:27:07Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/39/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Сопряжение и его геометрическая интерпретация\n2:18 - Свойства сопряжения\n6:44 - Норма и модуль комплексного числа\n11:29 - Свойства модуля\n16:08 - Модуль произведения\n21:10 - Обратное к комплексному числу\n24:06 - Деление комплексных чисел \n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики", 1878, false, "Kemrf38C-R8", "https://www.youtube.com/watch?v=Kemrf38C-R8", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e113000 - 39. Комплексные числа: сопряжение, модуль, норма, деление. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2022-11-30 15:00:17Z]] 21:27:07.570 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=469.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:27:07.572 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=13.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:27:07.574 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=14.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [165283] 21:27:07.575 [debug] Current batch of media processed. Will check again in 1000ms 21:27:08.575 [debug] Current batch of media processed. Will check again in 1000ms 21:27:09.576 [debug] Current batch of media processed. Will check again in 1000ms 21:27:10.577 [debug] Current batch of media processed. Will check again in 1000ms 21:27:11.579 [debug] Current batch of media processed. Will check again in 1000ms 21:27:12.580 [debug] Current batch of media processed. Will check again in 1000ms 21:27:13.582 [debug] Current batch of media processed. Will check again in 1000ms 21:27:14.582 [debug] Current batch of media processed. Will check again in 1000ms 21:27:15.583 [debug] Current batch of media processed. Will check again in 1000ms 21:27:16.259 [info] GET /sources/34/media/530440 21:27:16.259 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "530440", "prevent_download" => "true", "source_id" => "34"} Pipelines: [:browser] 21:27:16.262 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=1650.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" = ?) [530440] 21:27:16.265 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=1155.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [530440] 21:27:16.265 [debug] QUERY OK source="sources" db=1.5ms idle=1148.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [34] 21:27:16.268 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=157.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:16.269 [debug] QUERY OK source="settings" db=0.8ms idle=151.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:16.271 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=8.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:16.272 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:27:16.274 [info] Sent 200 in 15ms 21:27:16.584 [debug] Current batch of media processed. Will check again in 1000ms 21:27:17.585 [debug] Current batch of media processed. Will check again in 1000ms 21:27:18.586 [debug] Current batch of media processed. Will check again in 1000ms 21:27:19.587 [debug] Current batch of media processed. Will check again in 1000ms 21:27:20.363 [info] GET /sources/136/media/527908 21:27:20.363 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527908", "prevent_download" => "true", "source_id" => "136"} Pipelines: [:browser] 21:27:20.364 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=754.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" = ?) [527908] 21:27:20.366 [debug] QUERY OK source="tasks" db=0.9ms idle=755.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" [527908] 21:27:20.366 [debug] QUERY OK source="sources" db=1.1ms idle=755.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [136] 21:27:20.367 [debug] QUERY OK source="settings" db=0.3ms idle=246.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:20.368 [debug] QUERY OK source="settings" db=0.3ms idle=240.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:20.369 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:20.372 [debug] QUERY OK source="media_profiles" db=0.8ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:27:20.377 [info] Sent 200 in 13ms 21:27:20.588 [debug] Current batch of media processed. Will check again in 1000ms 21:27:21.589 [debug] Current batch of media processed. Will check again in 1000ms 21:27:22.590 [debug] Current batch of media processed. Will check again in 1000ms 21:27:23.591 [debug] Current batch of media processed. Will check again in 1000ms 21:27:24.592 [debug] Current batch of media processed. Will check again in 1000ms 21:27:25.593 [debug] Current batch of media processed. Will check again in 1000ms 21:27:26.244 [info] GET /sources/34/media/540742 21:27:26.244 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "540742", "prevent_download" => "true", "source_id" => "34"} Pipelines: [:browser] 21:27:26.245 [debug] QUERY OK source="media_items" db=0.9ms idle=635.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" = ?) [540742] 21:27:26.247 [debug] QUERY OK source="sources" db=0.5ms idle=636.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [34] 21:27:26.247 [debug] QUERY OK source="tasks" db=0.9ms idle=636.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" [540742] 21:27:26.248 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=110.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" = ?) [17381] 21:27:26.249 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=104.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:26.250 [debug] QUERY OK source="settings" db=0.4ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:26.252 [debug] QUERY OK source="settings" db=1.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:26.253 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:27:26.256 [info] Sent 200 in 12ms 21:27:26.382 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:26.594 [debug] Current batch of media processed. Will check again in 1000ms 21:27:27.595 [debug] Current batch of media processed. Will check again in 1000ms 21:27:28.330 [info] GET /media/cae431df-f871-41d1-836c-1dd871468871/stream 21:27:28.330 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "cae431df-f871-41d1-836c-1dd871468871"} Pipelines: [:maybe_basic_auth] 21:27:28.353 [debug] QUERY OK source="media_items" db=22.3ms idle=721.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["cae431df-f871-41d1-836c-1dd871468871"] 21:27:28.357 [debug] Invalid range request for media item: cae431df-f871-41d1-836c-1dd871468871 - serving full file 21:27:28.357 [info] Sent 200 in 27ms 21:27:28.596 [debug] Current batch of media processed. Will check again in 1000ms 21:27:29.597 [debug] Current batch of media processed. Will check again in 1000ms 21:27:30.598 [debug] Current batch of media processed. Will check again in 1000ms 21:27:30.845 [info] GET /sources/103/media/533341 21:27:30.845 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "533341", "prevent_download" => "true", "source_id" => "103"} Pipelines: [:browser] 21:27:30.847 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1236.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" = ?) [533341] 21:27:30.848 [debug] QUERY OK source="tasks" db=0.4ms idle=1237.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [533341] 21:27:30.848 [debug] QUERY OK source="sources" db=0.6ms idle=1238.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [103] 21:27:30.850 [debug] QUERY OK source="settings" db=1.5ms idle=699.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:30.850 [debug] QUERY OK source="settings" db=0.4ms idle=694.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:30.851 [debug] QUERY OK source="settings" db=0.4ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:30.853 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:27:30.854 [info] Sent 200 in 9ms 21:27:31.599 [debug] Current batch of media processed. Will check again in 1000ms 21:27:32.601 [debug] Current batch of media processed. Will check again in 1000ms 21:27:33.602 [debug] Current batch of media processed. Will check again in 1000ms 21:27:34.603 [debug] Current batch of media processed. Will check again in 1000ms 21:27:35.604 [debug] Current batch of media processed. Will check again in 1000ms 21:27:36.605 [debug] Current batch of media processed. Will check again in 1000ms 21:27:37.607 [debug] Current batch of media processed. Will check again in 1000ms 21:27:37.998 [info] GET /sources/138/media/531284 21:27:37.998 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531284", "prevent_download" => "true", "source_id" => "138"} Pipelines: [:browser] 21:27:37.999 [debug] QUERY OK source="media_items" db=0.6ms idle=1388.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" = ?) [531284] 21:27:38.000 [debug] QUERY OK source="tasks" db=0.4ms idle=1389.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [531284] 21:27:38.000 [debug] QUERY OK source="sources" db=0.6ms idle=1389.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [138] 21:27:38.001 [debug] QUERY OK source="settings" db=0.2ms idle=837.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:38.001 [debug] QUERY OK source="settings" db=0.2ms idle=829.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:38.002 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:38.003 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:27:38.007 [info] Sent 200 in 9ms 21:27:38.607 [debug] Current batch of media processed. Will check again in 1000ms 21:27:39.609 [debug] Current batch of media processed. Will check again in 1000ms 21:27:40.609 [debug] Current batch of media processed. Will check again in 1000ms 21:27:41.612 [debug] Current batch of media processed. Will check again in 1000ms 21:27:42.265 [info] GET /sources/138/media/531282 21:27:42.266 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531282", "prevent_download" => "true", "source_id" => "138"} Pipelines: [:browser] 21:27:42.270 [debug] QUERY OK source="media_items" db=2.1ms queue=0.7ms idle=655.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" = ?) [531282] 21:27:42.274 [debug] QUERY OK source="sources" db=0.3ms idle=662.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [138] 21:27:42.275 [debug] QUERY OK source="tasks" db=1.8ms queue=0.9ms idle=660.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [531282] 21:27:42.276 [debug] QUERY OK source="settings" db=0.2ms idle=89.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:42.277 [debug] QUERY OK source="settings" db=0.3ms idle=79.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:42.278 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=8.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:42.280 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:27:42.285 [info] Sent 200 in 20ms 21:27:42.614 [debug] Current batch of media processed. Will check again in 1000ms 21:27:43.614 [debug] Current batch of media processed. Will check again in 1000ms 21:27:44.615 [debug] Current batch of media processed. Will check again in 1000ms 21:27:45.616 [debug] Current batch of media processed. Will check again in 1000ms 21:27:46.619 [debug] Current batch of media processed. Will check again in 1000ms 21:27:47.620 [debug] Current batch of media processed. Will check again in 1000ms 21:27:48.621 [debug] Current batch of media processed. Will check again in 1000ms 21:27:49.622 [debug] Current batch of media processed. Will check again in 1000ms 21:27:50.623 [debug] Current batch of media processed. Will check again in 1000ms 21:27:51.625 [debug] Current batch of media processed. Will check again in 1000ms 21:27:52.627 [debug] Current batch of media processed. Will check again in 1000ms 21:27:53.386 [info] GET /media/0f766999-f502-42d1-877f-e30010095e0b/stream 21:27:53.386 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "0f766999-f502-42d1-877f-e30010095e0b"} Pipelines: [:maybe_basic_auth] 21:27:53.387 [debug] QUERY OK source="media_items" db=0.6ms idle=1147.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["0f766999-f502-42d1-877f-e30010095e0b"] 21:27:53.389 [debug] Invalid range request for media item: 0f766999-f502-42d1-877f-e30010095e0b - serving full file 21:27:53.389 [info] Sent 200 in 3ms 21:27:53.628 [debug] Current batch of media processed. Will check again in 1000ms 21:27:54.629 [debug] Current batch of media processed. Will check again in 1000ms 21:27:55.630 [debug] Current batch of media processed. Will check again in 1000ms 21:27:56.384 [info] {"source":"oban","duration":1199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:56.631 [debug] Current batch of media processed. Will check again in 1000ms 21:27:57.632 [debug] Current batch of media processed. Will check again in 1000ms 21:27:58.633 [debug] Current batch of media processed. Will check again in 1000ms 21:27:59.634 [debug] Current batch of media processed. Will check again in 1000ms 21:28:00.635 [debug] Current batch of media processed. Will check again in 1000ms 21:28:00.789 [info] {"source":"oban","duration":2748,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:28:01.638 [debug] Current batch of media processed. Will check again in 1000ms 21:28:02.639 [debug] Current batch of media processed. Will check again in 1000ms 21:28:03.640 [debug] Current batch of media processed. Will check again in 1000ms 21:28:04.711 [debug] Current batch of media processed. Will check again in 1000ms 21:28:05.713 [debug] Current batch of media processed. Will check again in 1000ms 21:28:06.713 [debug] Current batch of media processed. Will check again in 1000ms 21:28:07.722 [debug] Current batch of media processed. Will check again in 1000ms 21:28:08.654 [info] GET /sources/138/media/531292 21:28:08.654 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531292", "prevent_download" => "true", "source_id" => "138"} Pipelines: [:browser] 21:28:08.655 [debug] QUERY OK source="media_items" db=0.7ms idle=1029.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" = ?) [531292] 21:28:08.656 [debug] QUERY OK source="tasks" db=0.7ms idle=366.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [531292] 21:28:08.657 [debug] QUERY OK source="sources" db=0.8ms idle=360.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [138] 21:28:08.658 [debug] QUERY OK source="settings" db=0.4ms idle=32.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:08.679 [debug] QUERY OK source="settings" db=20.7ms idle=32.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:08.680 [debug] QUERY OK source="settings" db=0.4ms idle=24.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:08.681 [debug] QUERY OK source="media_profiles" db=0.3ms idle=24.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:28:08.685 [info] Sent 200 in 30ms 21:28:08.723 [debug] Current batch of media processed. Will check again in 1000ms 21:28:09.724 [debug] Current batch of media processed. Will check again in 1000ms 21:28:10.594 [info] GET /sources/117/media/528062 21:28:10.595 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "528062", "prevent_download" => "true", "source_id" => "117"} Pipelines: [:browser] 21:28:10.597 [debug] QUERY OK source="media_items" db=1.3ms idle=1913.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" = ?) [528062] 21:28:10.598 [debug] QUERY OK source="tasks" db=0.8ms idle=1291.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [528062] 21:28:10.599 [debug] QUERY OK source="sources" db=1.9ms idle=1283.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [117] 21:28:10.600 [debug] QUERY OK source="settings" db=0.5ms idle=292.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:10.601 [debug] QUERY OK source="settings" db=0.4ms idle=286.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:10.602 [debug] QUERY OK source="settings" db=0.2ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:10.603 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:28:10.607 [info] Sent 200 in 12ms 21:28:10.725 [debug] Current batch of media processed. Will check again in 1000ms 21:28:11.728 [debug] Current batch of media processed. Will check again in 1000ms 21:28:11.791 [info] GET /sources/34/media/527522 21:28:11.792 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "527522", "prevent_download" => "true", "source_id" => "34"} Pipelines: [:browser] 21:28:11.795 [debug] QUERY OK source="media_items" db=2.5ms queue=0.4ms idle=482.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" = ?) [527522] 21:28:11.798 [debug] QUERY OK source="tasks" db=1.0ms decode=0.5ms queue=0.2ms idle=476.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [527522] 21:28:11.798 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=170.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [34] 21:28:11.801 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=174.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:11.804 [debug] QUERY OK source="settings" db=1.6ms queue=0.3ms idle=176.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:11.813 [debug] QUERY OK source="settings" db=7.6ms idle=10.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:11.815 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.2ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:28:11.818 [info] Sent 200 in 26ms 21:28:12.729 [debug] Current batch of media processed. Will check again in 1000ms 21:28:13.730 [debug] Current batch of media processed. Will check again in 1000ms 21:28:14.731 [debug] Current batch of media processed. Will check again in 1000ms 21:28:15.732 [debug] Current batch of media processed. Will check again in 1000ms 21:28:16.146 [info] GET /sources/107/media/547223 21:28:16.146 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "547223", "prevent_download" => "true", "source_id" => "107"} Pipelines: [:browser] 21:28:16.147 [debug] QUERY OK source="media_items" db=0.4ms idle=828.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [547223] 21:28:16.148 [debug] QUERY OK source="tasks" db=0.4ms idle=822.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [547223] 21:28:16.148 [debug] QUERY OK source="sources" db=0.4ms idle=522.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [107] 21:28:16.149 [debug] QUERY OK source="oban_jobs" db=0.7ms idle=523.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" = ?) [17538] 21:28:16.150 [debug] QUERY OK source="settings" db=0.2ms idle=524.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:16.150 [debug] QUERY OK source="settings" db=0.2ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:16.151 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:16.152 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:28:16.158 [info] Sent 200 in 12ms 21:28:16.733 [debug] Current batch of media processed. Will check again in 1000ms 21:28:17.734 [debug] Current batch of media processed. Will check again in 1000ms 21:28:18.735 [debug] Current batch of media processed. Will check again in 1000ms 21:28:19.736 [debug] Current batch of media processed. Will check again in 1000ms 21:28:20.737 [debug] Current batch of media processed. Will check again in 1000ms 21:28:21.739 [debug] Current batch of media processed. Will check again in 1000ms 21:28:22.740 [debug] Current batch of media processed. Will check again in 1000ms 21:28:23.741 [debug] Current batch of media processed. Will check again in 1000ms 21:28:24.742 [debug] Current batch of media processed. Will check again in 1000ms 21:28:25.743 [debug] Current batch of media processed. Will check again in 1000ms 21:28:26.386 [info] {"source":"oban","duration":981,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:26.744 [debug] Current batch of media processed. Will check again in 1000ms 21:28:27.745 [debug] Current batch of media processed. Will check again in 1000ms 21:28:28.746 [debug] Current batch of media processed. Will check again in 1000ms 21:28:29.747 [debug] Current batch of media processed. Will check again in 1000ms 21:28:30.748 [debug] Current batch of media processed. Will check again in 1000ms 21:28:31.749 [debug] Current batch of media processed. Will check again in 1000ms 21:28:32.751 [debug] Current batch of media processed. Will check again in 1000ms 21:28:33.752 [debug] Current batch of media processed. Will check again in 1000ms 21:28:34.753 [debug] Current batch of media processed. Will check again in 1000ms 21:28:35.754 [debug] Current batch of media processed. Will check again in 1000ms 21:28:36.755 [debug] Current batch of media processed. Will check again in 1000ms 21:28:37.756 [debug] Current batch of media processed. Will check again in 1000ms 21:28:38.757 [debug] Current batch of media processed. Will check again in 1000ms 21:28:39.758 [debug] Current batch of media processed. Will check again in 1000ms 21:28:40.759 [debug] Current batch of media processed. Will check again in 1000ms 21:28:41.760 [debug] Current batch of media processed. Will check again in 1000ms 21:28:42.762 [debug] Current batch of media processed. Will check again in 1000ms 21:28:43.762 [debug] Current batch of media processed. Will check again in 1000ms 21:28:44.763 [debug] Current batch of media processed. Will check again in 1000ms 21:28:45.764 [debug] Current batch of media processed. Will check again in 1000ms 21:28:46.765 [debug] Current batch of media processed. Will check again in 1000ms 21:28:47.777 [debug] Current batch of media processed. Will check again in 1000ms 21:28:48.779 [debug] Current batch of media processed. Will check again in 1000ms 21:28:49.780 [debug] Current batch of media processed. Will check again in 1000ms 21:28:50.781 [debug] Current batch of media processed. Will check again in 1000ms 21:28:51.783 [debug] Current batch of media processed. Will check again in 1000ms 21:28:52.784 [debug] Current batch of media processed. Will check again in 1000ms 21:28:53.785 [debug] Current batch of media processed. Will check again in 1000ms 21:28:54.786 [debug] Current batch of media processed. Will check again in 1000ms 21:28:55.787 [debug] Current batch of media processed. Will check again in 1000ms 21:28:56.388 [info] {"source":"oban","duration":855,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:56.788 [debug] Current batch of media processed. Will check again in 1000ms 21:28:57.790 [debug] Current batch of media processed. Will check again in 1000ms 21:28:58.791 [debug] Current batch of media processed. Will check again in 1000ms 21:28:59.515 [info] GET /sources/34/media/530446/force_download 21:28:59.516 [debug] QUERY OK source="settings" db=0.5ms idle=1889.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.517 [debug] QUERY OK source="settings" db=0.3ms 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 [] 21:28:59.517 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:28:59.517 [error] #PID<0.30385.0> running PinchflatWeb.Endpoint (connection #PID<0.30384.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/34/media/530446/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/34/media/530446/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530446/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30385.0>, params: %{}, path_info: ["sources", "34", "media", "530446", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/34/media/530446/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWloTZgCethwT8AAgTB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530446/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/34/media/530446/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/34/media/530446/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30385.0>, params: %{}, path_info: ["sources", "34", "media", "530446", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ] (truncated) 21:28:59.792 [debug] Current batch of media processed. Will check again in 1000ms 21:29:00.790 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:29:00.793 [debug] Current batch of media processed. Will check again in 1000ms 21:29:01.796 [debug] Current batch of media processed. Will check again in 1000ms 21:29:02.796 [debug] Current batch of media processed. Will check again in 1000ms 21:29:03.797 [debug] Current batch of media processed. Will check again in 1000ms 21:29:03.905 [info] GET /sources/135/media/527912/force_download 21:29:03.906 [debug] QUERY OK source="settings" db=0.3ms idle=1279.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:03.907 [debug] QUERY OK source="settings" db=0.3ms idle=1280.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:03.907 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:29:03.908 [error] #PID<0.30388.0> running PinchflatWeb.Endpoint (connection #PID<0.30384.0>, stream id 2) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527912/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/135/media/527912/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527912/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30388.0>, params: %{}, path_info: ["sources", "135", "media", "527912", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527912/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlojwQMcZSg_sAAgUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527912/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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 /sources/135/media/527912/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30384.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527912/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 33058}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30388.0>, params: %{}, path_info: ["sources", "135", "media", "527912", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:29:04.798 [debug] Current batch of media processed. Will check again in 1000ms 21:29:05.799 [debug] Current batch of media processed. Will check again in 1000ms 21:29:06.800 [debug] Current batch of media processed. Will check again in 1000ms 21:29:07.801 [debug] Current batch of media processed. Will check again in 1000ms 21:29:08.802 [debug] Current batch of media processed. Will check again in 1000ms 21:29:08.927 [info] GET /sources/135/media/527911/force_download 21:29:08.930 [debug] QUERY OK source="settings" db=2.3ms idle=1301.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:08.930 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1303.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:08.931 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:29:08.931 [error] #PID<0.30390.0> running PinchflatWeb.Endpoint (connection #PID<0.30389.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/135/media/527911/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/135/media/527911/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527911/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25593}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30390.0>, params: %{}, path_info: ["sources", "135", "media", "527911", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/135/media/527911/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlo2dcuX5u0NUAAgUh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527911/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25593}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/135/media/527911/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/135/media/527911/force_download", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25593}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30390.0>, params: %{}, path_info: ["sources", "135", "media", "527911", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in 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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} (truncated) 21:29:09.803 [debug] Current batch of media processed. Will check again in 1000ms 21:29:10.804 [debug] Current batch of media processed. Will check again in 1000ms 21:29:10.944 [info] GET /media/7de725e0-ea3f-4a2f-b781-04de6b9732e9/stream 21:29:10.944 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "7de725e0-ea3f-4a2f-b781-04de6b9732e9"} Pipelines: [:maybe_basic_auth] 21:29:10.975 [debug] QUERY OK source="media_items" db=30.3ms queue=0.1ms idle=439.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["7de725e0-ea3f-4a2f-b781-04de6b9732e9"] 21:29:10.978 [debug] Invalid range request for media item: 7de725e0-ea3f-4a2f-b781-04de6b9732e9 - serving full file 21:29:10.978 [info] Sent 200 in 34ms 21:29:11.805 [debug] Current batch of media processed. Will check again in 1000ms 21:29:12.806 [debug] Current batch of media processed. Will check again in 1000ms 21:29:13.807 [debug] Current batch of media processed. Will check again in 1000ms 21:29:14.808 [debug] Current batch of media processed. Will check again in 1000ms 21:29:15.809 [debug] Current batch of media processed. Will check again in 1000ms 21:29:16.810 [debug] Current batch of media processed. Will check again in 1000ms 21:29:17.811 [debug] Current batch of media processed. Will check again in 1000ms 21:29:18.813 [debug] Current batch of media processed. Will check again in 1000ms 21:29:19.815 [debug] Current batch of media processed. Will check again in 1000ms 21:29:20.816 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Урок полностью: http://www.childrenscience.ru/courses/sav/40/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Тригонометрическая форма комплексного числа\n6:19 - Умножение на модуль (гомотетия)\n10:55 - Умножение на число единичного модуля\n16:50 - Геометрический смысл умножения\n26:29 - Формулы синуса суммы и косинуса суммы\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "duration" => 1917, "filename" => "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e120300 - 40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", "id" => "KKOveLt-9mY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KKOveLt-9mY", "playlist_index" => 40, "timestamp" => 1670080156, "title" => "40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики", "upload_date" => "20221203"} 21:29:20.817 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=282.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [116] 21:29:20.818 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=276.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:29:20.819 [debug] QUERY OK source="media_items" db=0.7ms idle=191.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-03 15:09:16Z], 116] 21:29:20.844 [debug] QUERY OK source="media_items" db=24.5ms queue=0.1ms idle=193.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Урок полностью: http://www.childrenscience.ru/courses/sav/40/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Тригонометрическая форма комплексного числа\n6:19 - Умножение на модуль (гомотетия)\n10:55 - Умножение на число единичного модуля\n16:50 - Геометрический смысл умножения\n26:29 - Формулы синуса суммы и косинуса суммы\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики", "5b6052d8-b755-4af9-9eac-e9af56401b9c", 1917, false, "KKOveLt-9mY", "https://www.youtube.com/watch?v=KKOveLt-9mY", 40, "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e120300 - 40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, false, false, 116, [], 1, ~U[2022-12-03 15:09:16Z], ~U[2026-06-03 18:29:20Z], ~U[2026-06-03 18:29:20Z], "Урок полностью: http://www.childrenscience.ru/courses/sav/40/1\nКурс \"100 уроков математики\": http://www.childrenscience.ru/courses/sav/\n\n0:00 - Тригонометрическая форма комплексного числа\n6:19 - Умножение на модуль (гомотетия)\n10:55 - Умножение на число единичного модуля\n16:50 - Геометрический смысл умножения\n26:29 - Формулы синуса суммы и косинуса суммы\n\nНаш сайт - https://childrenscience.ru/\n\nМы в социальных сетях:\nFacebook - https://www.facebook.com/detinauka/\nInstagram - https://www.instagram.com/childrenscience/\nVKontakte - https://vk.com/childrenscience\n\n#математика #савватеев #наука\n\nВозрастное ограничение: 0+", "40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики", 1917, false, "KKOveLt-9mY", "https://www.youtube.com/watch?v=KKOveLt-9mY", "/downloads/kidsShow/Савватеев 100 уроков математики/Season 2022/s2022e120300 - 40. Геометрический смысл умножения комплексных чисел. Алексей Савватеев. 100 уроков математики.mp4", false, 116, ~U[2022-12-03 15:09:16Z]] 21:29:20.846 [debug] QUERY OK source="sources" db=1.1ms idle=218.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [116] 21:29:20.847 [debug] QUERY OK source="media_profiles" db=0.9ms idle=29.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" = ?) [3] 21:29:20.848 [debug] QUERY OK source="media_items" db=0.8ms idle=30.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 [165286] 21:29:20.849 [debug] Current batch of media processed. Will check again in 1000ms 21:29:21.850 [debug] Current batch of media processed. Will check again in 1000ms 21:29:22.851 [debug] Current batch of media processed. Will check again in 1000ms 21:29:23.852 [debug] Current batch of media processed. Will check again in 1000ms 21:29:24.853 [debug] Current batch of media processed. Will check again in 1000ms 21:29:25.855 [debug] Current batch of media processed. Will check again in 1000ms 21:29:26.045 [info] GET /sources/137/media/531126 21:29:26.046 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531126", "prevent_download" => "true", "source_id" => "137"} Pipelines: [:browser] 21:29:26.047 [debug] QUERY OK source="media_items" db=0.6ms idle=1419.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" = ?) [531126] 21:29:26.049 [debug] QUERY OK source="tasks" db=0.6ms queue=1.6ms idle=1420.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [531126] 21:29:26.050 [debug] QUERY OK source="sources" db=0.7ms queue=1.7ms idle=1420.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [137] 21:29:26.051 [debug] QUERY OK source="settings" db=0.5ms idle=500.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:26.052 [debug] QUERY OK source="settings" db=0.4ms idle=494.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:26.054 [debug] QUERY OK source="settings" db=0.3ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:26.055 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:29:26.061 [info] Sent 200 in 15ms 21:29:26.390 [info] {"source":"oban","duration":1266,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:26.856 [debug] Current batch of media processed. Will check again in 1000ms 21:29:27.857 [debug] Current batch of media processed. Will check again in 1000ms 21:29:28.858 [debug] Current batch of media processed. Will check again in 1000ms 21:29:29.859 [debug] Current batch of media processed. Will check again in 1000ms 21:29:29.922 [info] GET /sources/138/media/531286 21:29:29.922 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "531286", "prevent_download" => "true", "source_id" => "138"} Pipelines: [:browser] 21:29:29.923 [debug] QUERY OK source="media_items" db=0.3ms idle=353.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" = ?) [531286] 21:29:29.924 [debug] QUERY OK source="tasks" db=0.4ms idle=348.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" [531286] 21:29:29.925 [debug] QUERY OK source="sources" db=0.6ms idle=296.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [138] 21:29:29.926 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=298.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:29.926 [debug] QUERY OK source="settings" db=0.3ms 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 [] 21:29:29.927 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:29.929 [debug] QUERY OK source="media_profiles" db=0.4ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [4] 21:29:29.932 [info] Sent 200 in 9ms 21:29:30.860 [debug] Current batch of media processed. Will check again in 1000ms 21:29:31.862 [debug] Current batch of media processed. Will check again in 1000ms 21:29:32.863 [debug] Current batch of media processed. Will check again in 1000ms 21:29:33.865 [debug] Current batch of media processed. Will check again in 1000ms 21:29:34.866 [debug] Current batch of media processed. Will check again in 1000ms 21:29:35.715 [info] GET /sources/118 21:29:35.716 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "118"} Pipelines: [:browser] 21:29:35.749 [debug] QUERY OK source="sources" db=33.3ms idle=1088.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [118] 21:29:35.750 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.2ms idle=145.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:29:35.753 [debug] QUERY OK source="tasks" db=2.5ms queue=0.1ms idle=137.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 (?,?,?,?)) [118, "executing", "available", "scheduled", "retryable"] 21:29:35.754 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=126.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" = ?) [17526] 21:29:35.755 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=126.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:35.755 [debug] QUERY OK source="settings" db=0.2ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:35.756 [debug] QUERY OK source="settings" db=0.1ms idle=5.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:35.760 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [118] 21:29:35.762 [debug] QUERY OK source="media_items" db=1.2ms idle=6.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [118] 21:29:35.763 [debug] QUERY OK source="media_items" db=0.6ms idle=7.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [118, 10, 0] 21:29:35.764 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [118] 21:29:35.765 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=8.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [118] 21:29:35.766 [debug] QUERY OK source="media_items" db=0.9ms idle=4.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [118, 10, 0] 21:29:35.768 [debug] QUERY OK source="sources" db=0.6ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [118] 21:29:35.769 [debug] QUERY OK source="media_items" db=0.4ms idle=5.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [118] 21:29:35.773 [debug] QUERY OK source="media_items" db=4.1ms idle=5.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [118, 10, 0] 21:29:35.776 [info] Sent 200 in 60ms 21:29:35.867 [debug] Current batch of media processed. Will check again in 1000ms 21:29:36.868 [debug] Current batch of media processed. Will check again in 1000ms 21:29:37.869 [debug] Current batch of media processed. Will check again in 1000ms 21:29:38.870 [debug] Current batch of media processed. Will check again in 1000ms 21:29:39.824 [info] GET /sources/130 21:29:39.824 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "130"} Pipelines: [:browser] 21:29:39.825 [debug] QUERY OK source="sources" db=0.5ms idle=209.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [130] 21:29:39.826 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=203.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 21:29:39.828 [debug] QUERY OK source="tasks" db=1.2ms idle=199.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [130, "executing", "available", "scheduled", "retryable"] 21:29:39.828 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=200.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" = ?) [17522] 21:29:39.831 [debug] QUERY OK source="settings" db=0.7ms idle=202.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:39.831 [debug] QUERY OK source="settings" db=0.2ms 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 [] 21:29:39.832 [debug] QUERY OK source="settings" db=0.3ms 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 [] 21:29:39.834 [debug] QUERY OK source="sources" db=0.2ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [130] 21:29:39.854 [debug] QUERY OK source="media_items" db=19.6ms 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 ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [130] 21:29:39.856 [debug] QUERY OK source="media_items" db=0.7ms idle=23.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [130, 10, 0] 21:29:39.857 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=24.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [130] 21:29:39.857 [debug] QUERY OK source="media_items" db=0.2ms idle=24.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [130] 21:29:39.859 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=23.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 ? [130, 10, 0] 21:29:39.860 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [130] 21:29:39.861 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=5.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [130] 21:29:39.863 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=5.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [130, 10, 0] 21:29:39.864 [info] Sent 200 in 40ms 21:29:39.872 [debug] Current batch of media processed. Will check again in 1000ms 21:29:40.873 [debug] Current batch of media processed. Will check again in 1000ms 21:29:41.877 [debug] Current batch of media processed. Will check again in 1000ms 21:29:42.879 [debug] Current batch of media processed. Will check again in 1000ms 21:29:43.880 [debug] Current batch of media processed. Will check again in 1000ms 21:29:44.881 [debug] Current batch of media processed. Will check again in 1000ms 21:29:44.886 [info] GET /sources/114 21:29:44.886 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "114"} Pipelines: [:browser] 21:29:44.887 [debug] QUERY OK source="sources" db=0.8ms idle=1253.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [114] 21:29:44.888 [debug] QUERY OK source="media_profiles" db=0.6ms idle=1247.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" = ?) [3] 21:29:44.927 [debug] QUERY OK source="tasks" db=38.5ms queue=0.1ms idle=259.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [114, "executing", "available", "scheduled", "retryable"] 21:29:44.928 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=292.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" = ?) [17508] 21:29:44.929 [debug] QUERY OK source="settings" db=0.9ms idle=286.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:44.930 [debug] QUERY OK source="settings" db=0.3ms idle=42.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:44.932 [debug] QUERY OK source="settings" db=1.7ms 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 [] 21:29:44.938 [debug] QUERY OK source="sources" db=3.8ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [114] 21:29:44.939 [debug] QUERY OK source="media_items" db=0.4ms idle=10.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [114] 21:29:44.940 [debug] QUERY OK source="media_items" db=0.7ms idle=10.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [114, 10, 0] 21:29:44.942 [debug] QUERY OK source="sources" db=0.4ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [114] 21:29:44.942 [debug] QUERY OK source="media_items" db=0.2ms idle=9.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [114] 21:29:44.943 [debug] QUERY OK source="media_items" db=0.6ms idle=4.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [114, 10, 0] 21:29:44.944 [debug] QUERY OK source="sources" db=0.2ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [114] 21:29:44.945 [debug] QUERY OK source="media_items" db=0.4ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [114] 21:29:44.946 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [114, 10, 0] 21:29:44.947 [info] Sent 200 in 61ms 21:29:45.883 [debug] Current batch of media processed. Will check again in 1000ms 21:29:46.883 [debug] Current batch of media processed. Will check again in 1000ms 21:29:47.885 [debug] Current batch of media processed. Will check again in 1000ms 21:29:48.886 [debug] Current batch of media processed. Will check again in 1000ms 21:29:49.799 [info] GET /sources/119 21:29:49.799 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "119"} Pipelines: [:browser] 21:29:49.831 [debug] QUERY OK source="sources" db=30.9ms idle=1170.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [119] 21:29:49.832 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1178.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" = ?) [3] 21:29:49.832 [debug] QUERY OK source="tasks" db=0.2ms idle=1172.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [119, "executing", "available", "scheduled", "retryable"] 21:29:49.833 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=174.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" = ?) [15585] 21:29:49.834 [debug] QUERY OK source="settings" db=0.4ms idle=169.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:49.834 [debug] QUERY OK source="settings" db=0.3ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:49.836 [debug] QUERY OK source="settings" db=0.6ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:49.839 [debug] QUERY OK source="sources" db=0.8ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [119] 21:29:49.841 [debug] QUERY OK source="media_items" db=1.8ms idle=6.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [119] 21:29:49.844 [debug] QUERY OK source="media_items" db=1.4ms idle=8.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [119, 10, 0] 21:29:49.845 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [119] 21:29:49.846 [debug] QUERY OK source="media_items" db=0.5ms idle=9.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [119] 21:29:49.888 [debug] Current batch of media processed. Will check again in 1000ms 21:29:49.889 [debug] QUERY OK source="media_items" db=43.0ms idle=7.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [119, 10, 0] 21:29:49.893 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [119] 21:29:49.894 [debug] QUERY OK source="media_items" db=0.5ms idle=49.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [119] 21:29:49.895 [debug] QUERY OK source="media_items" db=1.0ms idle=49.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [119, 10, 0] 21:29:49.898 [info] Sent 200 in 99ms 21:29:50.889 [debug] Current batch of media processed. Will check again in 1000ms 21:29:51.890 [debug] Current batch of media processed. Will check again in 1000ms 21:29:52.892 [debug] Current batch of media processed. Will check again in 1000ms 21:29:53.920 [debug] Current batch of media processed. Will check again in 1000ms 21:29:54.801 [info] GET /sources/113 21:29:54.802 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "113"} Pipelines: [:browser] 21:29:54.805 [debug] QUERY OK source="sources" db=1.4ms idle=1169.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [113] 21:29:54.807 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.5ms idle=1132.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" = ?) [3] 21:29:54.809 [debug] QUERY OK source="tasks" db=0.6ms queue=0.9ms idle=1128.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [113, "executing", "available", "scheduled", "retryable"] 21:29:54.810 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=129.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" = ?) [17520] 21:29:54.812 [debug] QUERY OK source="settings" db=0.4ms queue=0.3ms idle=115.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:54.813 [debug] QUERY OK source="settings" db=0.7ms queue=0.2ms idle=7.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:54.816 [debug] QUERY OK source="settings" db=1.3ms queue=0.1ms idle=7.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:54.820 [debug] QUERY OK source="sources" db=0.6ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [113] 21:29:54.822 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=9.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [113] 21:29:54.824 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=10.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [113, 10, 0] 21:29:54.826 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=11.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [113] 21:29:54.827 [debug] QUERY OK source="media_items" db=0.8ms idle=10.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [113] 21:29:54.828 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [113, 10, 0] 21:29:54.830 [debug] QUERY OK source="sources" db=0.6ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [113] 21:29:54.832 [debug] QUERY OK source="media_items" db=0.9ms 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 ((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"))))) [113] 21:29:54.834 [debug] QUERY OK source="media_items" db=1.5ms idle=6.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [113, 10, 0] 21:29:54.837 [info] Sent 200 in 35ms 21:29:54.923 [debug] Current batch of media processed. Will check again in 1000ms 21:29:55.924 [debug] Current batch of media processed. Will check again in 1000ms 21:29:56.392 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:56.925 [debug] Current batch of media processed. Will check again in 1000ms 21:29:57.927 [debug] Current batch of media processed. Will check again in 1000ms 21:29:58.928 [debug] Current batch of media processed. Will check again in 1000ms 21:29:59.930 [debug] Current batch of media processed. Will check again in 1000ms 21:30:00.795 [info] {"source":"oban","duration":4282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:30:00.931 [debug] Current batch of media processed. Will check again in 1000ms 21:30:01.922 [info] GET /sources/5/force_metadata_refresh 21:30:01.923 [debug] QUERY OK source="settings" db=0.6ms idle=1180.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:01.925 [debug] QUERY OK source="settings" db=1.5ms idle=1128.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:01.927 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:30:01.929 [error] #PID<0.30415.0> running PinchflatWeb.Endpoint (connection #PID<0.30414.0>, stream id 1) terminated Server: pinchflat.spluft.ru:80 (http) Request: GET /sources/5/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/5/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30414.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25110}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30415.0>, params: %{}, path_info: ["sources", "5", "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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/5/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GLWlr74jDXWbSxEAATIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30414.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25110}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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/5/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.30414.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/force_metadata_refresh", host: "pinchflat.spluft.ru", peer: {{192, 168, 1, 1}, 25110}, bindings: %{}, sock: {{192, 168, 32, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.spluft.ru", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.217.139", "x-forwarded-host" => "pinchflat.spluft.ru", "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.spluft.ru", method: "GET", owner: #PID<0.30415.0>, params: %{}, path_info: ["sources", "5", "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.spluft.ru", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 1, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.spluft.ru"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.217.139"}, {"x-forwarded-host", "pinchflat.spluft.ru"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/5/force_metadata_refresh", (truncated) 21:30:01.935 [debug] Current batch of media processed. Will check again in 1000ms 21:30:02.935 [debug] Current batch of media processed. Will check again in 1000ms 21:30:03.936 [debug] Current batch of media processed. Will check again in 1000ms 21:30:04.937 [debug] Current batch of media processed. Will check again in 1000ms